linux靜態動態庫製作和使用

2021-07-29 14:10:18 字數 690 閱讀 2792

..

本質優點

動態庫共享庫的**是在可執行程式執行時才載入記憶體

1.省空間2.bug修復利於維護3.開發效率

靜態庫靜態庫被鏈結後庫就直接嵌入可執行檔案

1.速度快

linux靜態動態庫製作和使用

動態庫步驟

生成.so文檔案 |…加-fpic和-shard和檔名需lib***.so

1. 1. gcc -fpic -o hello.o -c hello.c 成目標檔案

2. gcc -shared -o libhello.so hello.o

或一句 gcc -fpic -shared -o libhello.so hello.c

編譯鏈結動態庫到程式中

命令:gcc main.c -l . -lhello

-l指定庫路徑 -l指定庫名

-wl,-rpath: 記錄以來so檔案的路徑資訊,將動態庫路徑新增到執行時查詢路徑中(不知道是不是沒用過)

執行測試 新增動態庫執行路徑 (命令ldd a.out 檢測庫路徑)

環境變數 export ld_library_path=」$ld_library_path:.」

配置檔案/etc/ld.so.conf (root許可權 全域性配置不用)

靜態庫步驟

鏈結和執行跟動態庫基本一樣

Linux 靜態庫和動態庫的製作和使用

一 linux作業系統支援的函式庫分支 靜態庫 lib a,在編譯時就將庫編譯進可執行程式 優點 程式的執行環境中不需要外部的函式庫 缺點 可執行程式大 動態庫 又稱共享庫,lib so,在程式執行時將庫載入到可執行程式中 優點 可執行程式小 缺點 程式的執行環境中必須提供相應的庫 函式庫目錄 li...

Linux下靜態庫與動態庫的製作和使用

1 linux作業系統支援的函式庫分為靜態庫和動態庫,動態庫又稱為共享庫。函式庫檔案主要存放在 lib usr lib 2 不管是靜態函式庫還是動態函式庫,都是由 o目標檔案生成 這類庫檔案以lib a 利用靜態函式庫編譯成的檔案較大,因為整個庫的所有資料都會被整合到目標 中。優點 編譯後的程式不需...

靜態庫和動態庫的製作和使用

linux下的靜態庫為lib a格式的二進位制檔案 目標檔案 對應於windows下的.lib格式的檔案。lib 庫名字 a libmytest.a 則庫名字為mytest。1 生成對應的 o檔案 gcc c c c o 2 將生成的 o檔案打包 ar rcs 靜態庫名稱 libmytest.a 所...