靜態庫的建立:
靜態庫字尾通常以.a結尾,鏈結生成靜態庫時需要使用ar命令。
常用引數:
r 在庫中插入(修改)模組(替換靜態庫)。當插入的模組名已經在庫中存在, 則替換同名的模組,如若干模組中有乙個模組在庫中不存在,則ar顯示乙個 錯誤資訊,並且不會替換其他同名模組
c 建立乙個新的庫。不管庫是否存在,都將建立
s 建立目標檔案索引,此引數在建立較大庫時能加快時間。如果不需要建立索引, 可改寫成s引數;如果.a檔案缺少索引,可以使用ranlib命令來新增索引
格式:ar rcs ***.a ***.o
靜態庫的一般建立步驟為:
生成目標檔案(.o)→生成靜態庫(.a)
單檔案時直接使用命令gcc –c main.c –o main.o生成目標檔案,然後使用命令ar rcs main.a main.o
多檔案時使用makefile編譯
靜態庫的呼叫:
使用gcc命令加上庫檔案即呼叫成功
gcc –o calculate main.c ./static/libcalculate.a
main.c
Linux 下動態庫和靜態庫的建立和呼叫
每個程式實質上都會鏈結到乙個或者多個的庫。比如使用c函式的程式會鏈結到c執行時庫,gui程式會鏈結到視窗庫等等。無論哪種情況,你都會要決定是鏈結到靜態庫 static libary 還是動態庫 dynamic libary 鏈結到靜態庫會使你的程式臃腫,並且難以公升級,但是可能會比較容易部署。而鏈結...
gcc建立和使用靜態庫 動態庫
gcc建立和使用靜態庫 動態庫 下面以工程libtest為例說明gcc 建立和使用 靜態庫 動態庫的過程,libtest目錄結構和內容如圖1所示,其中三個檔案hello.h,hello.c和main.c的內容如下。libtest include hello.h ifdef hello h defin...
gcc建立和使用靜態庫 動態庫
下面以工程libtest為例說明gcc建立和使用靜態庫 動態庫的過程,libtest目錄結構和內容如圖1所示,其中三個檔案hello.h,hello.c和main.c的內容如下。圖1libtest include hello.h ifdef hello h define hello h void h...