QT .pro文件 LIBS用法詳解


在程序中需要使用到團隊其它成員開發的靜態庫和動態庫,起初是知道使用LIBS變量在在.pro文件中指定需要包含的庫,但是實際使用的時候卻遇到很大麻煩,但其實確實是因為自己看官方文檔不太用心造成的。

 下面是官方文檔對於LIBS變量的使用說明:

這段話對於LIBS的使用說的很清楚了,就是-L指定庫的目錄,而-l指定庫的名字(如果是在Linux下,則去掉lib和后綴名,windows下去掉后綴名即可),靜態庫、動態庫都是一樣的。但是它沒說的是,如果使用相對路徑,而庫又想要被程序找的到,那么這個相對路徑指的是執行程序生成的位置於庫的相對路徑,因為QT編譯時會把生成路徑放在和項目相同目錄下的另一個文件夾中,那么也就是說,我們必須把庫拷貝到編譯生成的目錄下才行(這里解釋一下,可能是受VC的影響,VC中編譯生成目錄默認是在項目根目錄下的,所以養成了習慣,誤以為在Qt中也是把庫放在根目錄下就可以了,其實這是錯的)。

如果不想把庫拷貝到編譯輸出目錄,那么也可以指定絕對路徑。下面是兩種方式的對比:

1、相對路徑:

需要將庫拷貝到與生成應用程序相對路徑的目錄下才行

在window下使用qmake“翻譯”過生成的makefile文件中的路徑為:

可以看到用線圈起來的地方,就是GCC標准的參數,指定了庫的位置。

2、絕對路徑:

使用紅線圈起來的地方就是絕對路徑,在window下,qmake“翻譯”過生成的makefile文件中指定了庫的文件,顯然是絕對路徑。

3、自動生成.pro

除了手動設置庫文件的位置,還可以使用導入的方式,讓QtCreator自動生成導入庫文件的方式。步驟如下:

在工程文件上右鍵選擇添加庫,到下一步,選擇External library。

然后按照指示,指定庫的位置即可。然后QtCreator會自動生成具有絕對路徑的庫文件指定語句。

 

4、總結

最后,庫的寫法與頭文件的包含類似,也可以使用反斜線將其放在不同行對齊,如果許多庫屬於同一個目錄,那么只要在最前面用-L指定目錄,后面所有的庫用空格分開就行了。如下面的寫法:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM