靜態庫動態庫的建立和呼叫

2021-10-01 05:16:37 字數 679 閱讀 4946

靜態庫的建立:

靜態庫字尾通常以.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...