- 註冊時間
- 2006-10-8
- 最後登錄
- 2019-6-20
- 主題
- 查看
- 積分
- 1306
- 閱讀權限
- 110
- 文章
- 1393
- 相冊
- 0
- 日誌
- 1
狀態︰
離線
|
要製作靜態函式庫,可以透過 ar (archive) 指令加上 –r 參數,將一群目的檔包裝為函式庫,例如,在下一個範例中,我們就用了ar -r lib/libstack.a StackFunc.o StackType.o 這樣一個指令,將StackFunc.o StackType.o這兩個目的檔包裝成 libstack.a 函式庫,放在 lib 資料夾下。然後,在連結的時候,再利用 gcc -o stack.o StackMain.c -lstack -L lib -I inc 這樣的指令,直接連結函式庫。只要懂得利用函式庫,就不需要逐個檔案進行連結了。
您也可以用 ar 指令加上 –tv 參數,檢視函式庫中到底包含了哪些目的檔,甚至可以用 ar 指令加上 –x 參數,將目的檔從函式庫當中取出,以下是 ar 的使用範例。
範例:使用 ar指令建立函式庫
$ ar -r lib/libstack.a StackFunc.o StackType.o 建立 lib/libstack.a 函式庫
ar: creating lib/libstack.a
$ gcc -o stack.o StackMain.c -lstack -L lib -I inc 編譯 StackMain.c 並連結 libstack.a 函式庫,
輸出執行檔stack.o
$ ./stack.o 執行 stack.o
x=3 結果輸出 3。
$ ar -tv lib/libstack.a 顯示函式庫 libstack.a 的內容
rw-r--r-- …略… 30 12:59 2009 StackFunc.o 包含StackFunc.o
rw-r--r-- …略… 30 12:59 2009 StackType.o
包含StackType.o
$ ar -x lib/libstack.a StackFunc.o 從lib/libstack.a中取出StackFunc.o
|
|