嵌入式C語言入門 靜態庫 動態庫

2021-09-02 14:14:41 字數 1217 閱讀 7879

編譯時gcc庫包含相關指令

動態庫靜態庫,所有的庫包含在最終可執行檔案中,占用空間大,執行速度快.

靜態庫一般以lib開頭命名,以.a字尾結尾

ar rcs lib庫名.a mul.o add.o sub.o

gcc 1.c -o 1.o libmylib.a //庫檔案在當前目錄下

引數功能

-l庫檔案所在目錄

-l(l的小寫)

庫檔名

-i(i的大寫)

標頭檔案所在目錄

//鏈結home目錄下的libmylib.a靜態庫, 包含當前目錄下的標頭檔案

gcc 1.c -o run -l /home -lmylib -i ./

動態庫只有在執行的時候才呼叫,占用空間小,常見庫一般都是靜態庫,如libc

動態庫一般以lib開頭命名,以.so字尾結尾

gcc ***.c -c -o ***.o -fpic
gcc -shared -o lib庫名.so ***.o
export ld_ library_path = 絕對路徑
1. vim  ~/.bashrc

2. export ld_library_path=庫所在目錄的絕對路徑新增檔案最後一行

3. 重啟終端或者執行命令 source ~/.bashrc 使用配置檔案生效

1. vim /etc/ld.so.conf

2. 將庫檔案的絕對路徑新增到庫的最後一行

3. 使配置檔案生效:ldconfig -v

ps: ldd a.out可以檢視執行檔案所依賴的動態庫

動態庫和靜態庫在同乙個目錄下,預設包含的是動態庫

//編譯當前目錄下src資料夾中main.c檔案,鏈結庫的路徑位於當前檔案lib目錄,庫名libmylib

//頭檔案目錄位於當前檔案include目錄,將最終可執行檔案生成並置於bin目錄

gcc ./src/main.c -l ./lib -lmylib -i ./include/ -o ./bin/a.out

嵌入式系統設計 靜態庫 a和動態庫的製作 so

靜態庫.a和動態庫的製作.so 1 什麼庫檔案?儲存函式和變數 倉庫 特點 儲存的函式與變數,只能使用但不能看到其實現。2 linux庫檔案 靜態庫 在編譯階段載入 將庫檔案的 載入到原始檔 動態庫 在執行時載入 3 生成的可執行檔案存在區別 優缺點 1 使用靜態庫生成的可執行檔案大於動態庫生成的可...

C語言 靜態庫與動態庫

一.靜態庫 靜態庫 要被包含到源程式中的庫 1.優點執行速度快 2.缺點占用系統資源比較多 3.使用的場合對時間要求很高的場合 4.靜態庫的製作 1 把所有的源程式 c檔案 製作成目標檔案 o 檔案 gcc c mul.c o mul.o gcc c sub.c o sub.o gcc c add....

嵌入式 gdb debug共享庫

一 參考 add symbol file 二 target 執行的路徑和build server 執行的路徑要一樣,不然找不到依賴的動態庫 target 可以使用軟連線來模擬build server的路徑,如下 ln s mnt nfs bin projects src nexus examples...