如何把自己的源文件做成靜態庫?

靜態庫 

文件名:lib.c 
先編譯成目標文件 gcc -o mylib.o -c lib.c 
然後創建靜態庫,將mylib.o放到libmylib.a中 ar rcs libmylib.a mylib.o 

ar”可直接將需要增加的.o文件簡單的追加到靜態庫的末尾。ar命令中,"c"關鍵字告訴ar需要創建一個新庫文件,"u"用來告訴ar如果a.o比庫中的同名成員要新(這個參數可以省略),則用新的a.o替換原來的,"r"將文件插入備存文件中,上例中將mylib.o文件加入libmylib.a中。
最後:ranlib libmylib.a     其中“ranlib”來對靜態庫的符號索引表進行更新,"ar"之後將編譯完成的.o文件直接加入到了庫的末尾,卻並沒有更新庫的有效符號表。連接程序進行連接時,在靜態庫的符號索引表中無法定位剛纔加入的.o文件中定義的函數或者變量。這就需要在完成庫成員追加以後讓加入的所有.o文件中定義的函數(變量)有效,完成這個工作需要使用另外一個工具“ranlib”來對靜態庫的符號索引表進行更新。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章