ubuntu 下QT4鏈接C語言編寫的.a靜態庫

    很久沒有使用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鏈接路徑。誰有解決辦法呢???煩請告知下,不勝感激涕零。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章