靜態庫檔案也稱為 文件檔案, 是由一些 .o 檔案的集合。
在linux中使用工具 ar 對其進行維護管理。
1. 庫成員作為目標
庫成員作為目標時,使用如下格式:
archive(member) #表示庫archive的成員member。
同時指定庫的多個成員:
foolib(hack.o dge.o) #等價於 foolib(hack.o) foolib(dge.o)
2. 靜態庫的更新
假如存在目標: foo.a(bar.o)
執行 make 『foo.a(bar.o)』 #需要加引號,不然shell 會將 ( ) 當做特殊符號處理。
執行如下命令:
cc -c bar.c -o bar.o #生成成員bar.o
ar r foo.a bar.o #將成員bar.o加到foo.a庫中
rm -f bar.o #刪除中間檔案
3.靜態庫符號索引表的更新
當庫增加了成員之後,需要更新成員,否則增加的成員中所定義的所有符號將無法被連線程式定位。
ranlib archivefile #對archivefile進行成員更新
GUN make 8 make的隱含規則
隱含規則為make提供了一類目標檔案通用方法,不需要在makefile中明確的給出重建特定目標檔案所需的細節描述。只要目標檔案中除字尾以外其他部分相同,make都能夠使用若干隱含規則來最終產生這個目標檔案。對應關係 exename.o 對應 exename.c exename 對應 exename....
make太慢了,加快編譯速度的方法 make j
make j 既然io不是瓶頸,那cpu就應該是乙個影響編譯速度的重要因素了。用make j帶乙個引數,可以把專案在進行並行編譯,比如在一台雙核的機器上,完全可以用make j4,讓make最多允許4個編譯命令同時執行,這樣可以更有效的利用cpu資源。還是用kernel來測試 用make 40分16...
make太慢了,加快編譯速度的方法 make j
2018 01 18 09 04 05 gonghuihuihui 閱讀數 21957 收藏 更多 分類專欄 linux make j 既然io不是瓶頸,那cpu就應該是乙個影響編譯速度的重要因素了。用make j帶乙個引數,可以把專案在進行並行編譯,比如在一台雙核的機器上,完全可以用make j4...