1. 程式人生 > >Qt動態庫的連結問題

Qt動態庫的連結問題

前言

之前在Qt 引用動態庫經常出錯,要麼編譯找不到庫,要麼執行時候出錯,其實就是路徑的問題, 這裡總結一下

正文

Qt中引用動態庫,動態庫有兩個檔案,一個是.lib連結檔案,一個是.dll動態庫檔案,
在Qt pro檔案引用的時候
LIBS += -L../lib -lReceiver
這個表示lib檔案在工程檔案的上一層目錄中的lib資料夾中,只需要將.lib檔案的路徑引導正確即可。
如果.lib檔案就在pro檔案的當前目錄下,那麼可以省掉-L 項
直接寫成 LIBS += -lReceiver

建議在寫路徑的適合加PWD指示當前目錄,例如
LIBS += -L$$PWD/lib -llibReceiver

然後 打包的時候 只需要將dll庫檔案拷貝到與exe執行檔案統計目錄下即可自動查詢並執行,打包檔案中不再需要.lib檔案

工程檔案中寫的庫連結 是編譯的時候去這個路徑找lib連結庫, 但是打包出來的檔案執行不會根據這個路徑去查詢dll檔案

記住一點:
編譯是去查詢 lib檔案 所以路徑只要寫lib的路徑就好,而執行就需要dll檔案,所以在打包檔案中執行程式的時候會在exe同級目錄下去查詢dll檔案,如果沒有,就會報錯