ubuntu系統下需要鏈結.a靜態庫檔案,查詢了一些資料執行gcc命令發現都不能鏈結成功。最後自己通過一些測試,成功鏈結並且執行。
使用命令如下: gcc -o test dll_test.c -l ./ sdkusedll.a
說明: test是編譯後的執行程式的名稱,dll_test.c是源**檔案, -l ./ 是指包含.a檔案包含的目錄,我測試過程使用和原始檔一樣的當前目錄,sdkusedll.a為需要鏈結的靜態庫。便於測試,我是把.a檔案需要的標頭檔案和.a檔案一併放入到.c的源**檔案的同乙個目錄下。
linux下 GCC編譯鏈結靜態庫 動態庫
目錄 回到頂部 有時候需要把一組 編譯成乙個庫,這個庫在很多專案中都要用到,例如libc就是這樣乙個庫,我們在不同的程式中都會用到libc中的庫函式 例如printf 也會用到libc中的變數 例如以後 要講到的environ變數 本文將介紹怎麼建立這樣乙個庫。這些檔案的目錄結構是 tree mai...
gcc使用 動態庫鏈結靜態庫
最近自己的專案中遇到乙個問題 編譯乙個動態庫,動態庫中使用了靜態庫的函式如下圖所述 問題來了怎麼編譯最終得到乙個帶有靜態鏈結的動態庫lib so?生成靜態庫lib 1 gcc o 1.o c 1.c ar r 1.o lib 1.a 生成靜態庫lib 2 gcc o 2.o c 2.c ar r 2...
GCC動態鏈結庫和靜態庫
然後利用ar命令將.o檔案生成靜態庫.a檔案 ar cqs libt3.a tt.o 生成的t3.exe比ttt.exe稍大,但是考慮到ttt.exe還帶了乙個dll,t3就小多了。當然這個比較純屬無聊。另外,生成的.a檔案,改名為.lib檔案也可以,利用vc的cl命令鏈結.a或者.lib都行,都能...