靜態庫
編寫好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...