linux下建立靜態庫與動態庫

2021-05-27 15:19:46 字數 761 閱讀 9331

靜態庫

編寫好c原始檔,裡面只有函式的實現。要呼叫的檔案比如是main.c,在檔案裡宣告c原始檔裡的庫函式名。

1 首先 gcc -c hello.c  生成hello.o

2 ar crs libhello.a hello.o

3 gcc -o main main.c -l. -lhello   -l後面跟著庫的路徑,-l後面跟著lib***.a ***的內容

-i(大寫i)指定庫函式在主函式呼叫的標頭檔案的路徑

動態庫1建立位置無關** gcc -fpic -c hello.c   生成hello.o   其中選項為

i(大寫i)

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

3 建立軟連線 ln -s libhello.so.1 libhello.so  將libhello.so指向libhello.so.1

4 gcc -o mycpp mycpp.c -l. -lhello 

系統預設找共享庫,想找靜態庫要加選項-static 靜態庫名

5 讓程式執行時找到動態庫的路徑有兩種方法:

1)把庫考到/usr 或者/usr/lib 目錄下。

2)ld_library_path(lood library path)環境變數下加上庫所在路徑

export ld_library_path=./

等於號兩邊沒有空格,讓程式找到動態庫在當前目錄下

另外:執行時需要檢視乙個程式需要哪些庫, 可以用命令ldd mycpp.

linux 下建立靜態庫和動態庫

4.生成庫檔案 編寫函式 編譯生成各目標檔案 用ar檔案對目標檔案歸檔,生成靜態庫檔案。注意歸檔檔案名必須以lib打頭 可檢視庫檔案命名規則 使用要點 在gcc的 i引數後加上靜態庫標頭檔案的路徑。在gcc的 l引數後加上庫檔案所在目錄 在gcc的 l引數後加上庫檔名,但是要去掉lib和.a副檔名。...

linux下靜態庫與動態庫的建立與使用

目錄 一 庫的概念 二 庫的知識 三 靜態庫 1 特點 2 建立 3 使用 4 小結 三 共享庫 1 特點 2 建立 3 使用 4 如何找到共享庫 5 小結 1 庫是乙個原始碼編譯後的二進位制檔案,包含的 可被程式使用 2 庫的種類 標準c庫 資料庫 執行緒庫.4 庫的存放路徑 lib usr li...

Linux下靜態庫和動態庫的建立與使用

靜態庫 假設當前有乙個 c 語言專案,其目錄結構如下所示 demo專案 headers test.h sources add.c sub.c div.c main.c 可以看到,該專案中包含 1 個頭檔案 h 4 個原始檔 c 它們各自包含的 如下所示 整個專案的邏輯很簡單,其中 add.c sub...