QT pro檔案 LIBS用法詳解

2021-08-28 11:38:23 字數 1496 閱讀 5290

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

下面是官方文件對於libs變數的使用說明:

這段話對於libs的使用說的很清楚了,就是-l指定庫的目錄,而-l指定庫的名字(如果是在linux下,則去掉lib和字尾名,windows下去掉字尾名即可),靜態庫、動態庫都是一樣的。但是它沒說的是,如果使用相對路徑,而庫又想要被程式找的到,那麼這個相對路徑指的是執行程式生成的位置於庫的相對路徑,因為qt編譯時會把生成路徑放在和專案相同目錄下的另乙個資料夾中,那麼也就是說,我們必須把庫拷貝到編譯生成的目錄下才行(這裡解釋一下,可能是受vc的影響,vc中編譯生成目錄預設是在專案根目錄下的,所以養成了習慣,誤以為在qt中也是把庫放在根目錄下就可以了,其實這是錯的)。

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

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

在window下使用qmake「翻譯」過生成的makefile檔案中的路徑為:

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

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

除了手動設定庫檔案的位置,還可以使用匯入的方式,讓qtcreator自動生成導入庫檔案的方式。步驟如下:

在工程檔案上右鍵選擇新增庫,到下一步,選擇external library。

然後按照指示,指定庫的位置即可。然後qtcreator會自動生成具有絕對路徑的庫檔案指定語句。

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

QT pro檔案 LIBS用法詳解

在程式中需要使用到團隊其它成員開發的靜態庫和動態庫,起初是知道使用libs變數在在.pro檔案中指定需要包含的庫,但是實際使用的時候卻遇到很 煩,但其實確實是因為自己看官方文件不太用心造成的。下面是官方文件對於libs變數的使用說明 這段話對於libs的使用說的很清楚了,就是 l指定庫的目錄,而 l...

QT pro檔案 LIBS用法詳解

下面是官方文件對於libs變數的使用說明 這段話對於libs的使用說的很清楚了,就是 l指定庫的目錄,而 l指定庫的名字 如果是在linux下,則去掉lib和字尾名,windows下去掉字尾名即可 靜態庫 動態庫都是一樣的。但是它沒說的是,如果使用相對路徑,而庫又想要被程式找的到,那麼這個相對路徑指...

QT pro檔案 LIBS用法詳解

在程式中需要使用到團隊其它成員開發的靜態庫和動態庫,起初是知道使用libs變數在在.pro檔案中指定需要包含的庫,但是實際使用的時候卻遇到很 煩,但其實確實是因為自己看官方文件不太用心造成的。下面是官方文件對於libs變數的使用說明 這段話對於libs的使用說的很清楚了,就是 l指定庫的目錄,而 l...