靜態庫與動態庫的比較

2021-10-23 12:29:42 字數 692 閱讀 6302

靜態庫的製作:

1.通過gcc -c add.c 生成目標檔案 =》add.o

2.通過ar crs -o libadd.a add.o 生成靜態庫 =》libadd.a

3.通過gcc main.c -l. -ladd 鏈結靜態庫編譯,生成可執行檔案a.out

4.執行a.out即可

動態庫的製作:

1.通過gcc -c add.c 生成目標檔案 =》add.o

2.通過gcc -fpic -shared -o libmyadd.so add.o 生成動態庫檔案 =》libmyadd.so

3.通過gcc main.c -l. -lmyadd 生成可執行檔案 =》a.out

4,此時,執行找不到庫檔案,我們需要

(1)將libmyadd.so放到/usr/lib或/lib目錄下

(2)通過export ld_library_path=/home/linux/jn16081/day02/lib 將庫所在的絕對路徑新增至環境變數中(通過echo $ld_library_path檢視此環境變數的值;通過unset ld_library_path來刪除此環境變數裡的值)

(3)在/etc/ld.so.conf.d/下新建乙個my.conf檔案,在裡面寫入庫所在的絕對路徑,儲存並執行ldconfig執行配置檔案。

linux動態庫與靜態庫使用比較

在windows下,動態庫dll的使用往往伴隨著lib的指引,而linux使用動態庫和靜態庫則有較大的不同。1.靜態庫 名字一般是lib a 利用靜態函式庫編譯成的檔案比較大,因為整個 函式庫的所有資料都會被整合進目標 中,編譯後的執行程式不需要外部的函式庫支援,但是,公升級比較麻煩。每一次版本更新...

動態庫與靜態庫優缺點比較

從本質上來說是一種可執行 的二進位制格式,可以被載入記憶體中執行。庫分靜態庫和動態庫兩種 1.靜態函式庫 這類庫的名字一般是lib a 利用靜態函式庫編譯成的檔案比較大,因為整個 函式庫的所有資料都會被整合進目標 中,他的優點就顯而易見了,即編譯後的執行程式不需要外部的函式庫支援,因為所有使用的函式...

靜態庫與動態庫

linux下靜態庫 a 的例子 mylib.h 位於include資料夾下 ifndef mylib h define mylib h int add int a,int b endif mylib.cpp 位於lib資料夾中 include mylib.h int add int a,int b ...