GUN make 9 make的靜態庫檔案

2021-10-03 19:45:28 字數 675 閱讀 2063

靜態庫檔案也稱為 文件檔案, 是由一些 .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...