很久沒有使用QT進行開發了,大概有3-4年了。一個ubuntu下的小項目,讓我重新使用QT進行開發。
用C語言寫了一個靜態庫文件.a文件,準備在QT4下進行鏈接使用。我在pro工程配置文件中增加LIBS的配置,使用各種方法進行倒騰,不是提示找不到庫文件,就是提示某些函數鏈接錯誤,其實就是.a文件沒有進行鏈接到。查了網絡資料,試了幾種辦法也沒有解決該問題。
最後無奈之下,沒有辦法,查看QT的工程編譯目錄下的Makefile文件,感覺應該是由於搜索目錄的問題。乾脆暴力解決吧,直接使用寫死的完整路徑進行鏈接,運行發現OK。
LIBS += /home/zzf/qt_project/test/lib/QT_Test.a
由於QT是C++,要鏈接C語言的庫函數,包含.a文件需要的頭文件的時候記得要添加 extern "C"使用C語言方式函數鏈接,如下
extern "C"
{
#include "QT_Test.h"
}
正常情況下使用-L 和 -l 命令應該就可以鏈接到的,qt4下就各種不行,通過寫死路徑雖然解決了鏈接問題。但是後續拷貝工程和庫文件帶來不方便,工程路徑變更就得重新更改.a鏈接路徑。誰有解決辦法呢???煩請告知下,不勝感激涕零。