1、靜態庫
靜態庫(static library or archive)是幾個object檔案的組合。假設你有兩個c檔案,test1.c和test2.c,先用如下命令編譯這兩個檔案:
gcc -c test1.c
gcc -c test2.c
這樣會生成兩個object檔案:test1.o和test2.o,再利用這兩個檔案來生成乙個靜態庫檔案,使用如下命令:
ar cr libtest.a test1.o test2.o
這樣就生成了乙個名為libtest.a的靜態庫檔案。
再假設test1.c裡面有乙個函式叫做display,你的應用程式main.c可以呼叫這個display函式,編譯的時候用如下命令:
gcc -o main main.c -l .
/-ltest
-l引數指明庫的搜尋路徑,-l引數說明具體要鏈結的庫。這樣就可以像其他程式那樣執行main可執行程式了。
2、動態庫
gcc -c -fpic test1.c gcc -c -fpic test2.c
-fpic命令告訴編譯器test1.o和test2.o將作為動態庫的一部分進行使用。pic是指position-independent code。然後將這兩個目標檔案組合起來,生成乙個動態庫檔案,命令如下:
gcc -shared -fpic -o libtest.so test1.o test2.o
這樣就生成了乙個名為libtest.so的動態庫檔案。和上面使用靜態庫一樣的方法使用動態庫,就不再介紹了。需要注意的是,執行動態鏈結的程式時,動態庫檔案所在的路徑一定要包含在環境變數ld_library_path當中,否則,找不到所使用的庫檔案時,程式不會成功執行。
靜態庫的製作和使用
靜態庫的建立和使用 1 命名規則 lib 庫的名字 a 例子 libmytest.a 2 製作步驟 a.生成對應的.o檔案 c o b.將生成的.a檔案打包 ar rcs 靜態庫的名字 libmytest.a 生成的所有的.o 3 發布和使用靜態庫 a.發布靜態庫 b.標頭檔案 include 存放...
linux靜態動態庫製作和使用
本質優點 動態庫共享庫的 是在可執行程式執行時才載入記憶體 1.省空間2.bug修復利於維護3.開發效率 靜態庫靜態庫被鏈結後庫就直接嵌入可執行檔案 1.速度快 linux靜態動態庫製作和使用 動態庫步驟 生成.so文檔案 加 fpic和 shard和檔名需lib so 1.1.gcc fpic o...
linux 動態庫的製作和使用
step1.首先生成與位置無關的 生成與位置無關的.o gcc fpic c c i include step2.生成動態庫 step3.使用者結合main.c使用動態庫 標頭檔案進行編譯,生成可執行檔案 2.gcc main.c i include l lib l mycalc o mysum 也...