2012-09-07 55 views
5

當談到使用終端手動建立庫時,我不幸的是沒有太多的經驗,我在這裏卡住了一下。如何使用libtool在Mac OS上創建.a文件(靜態庫)?

我已經下載了一個庫,用於makefile和這樣的目標c。

我可以看到該文件夾​​還包含一個名爲「libtool」的可執行文件,我做了一些搜索,我想這是我必須使用的程序來構建必要的.a文件?不幸的是我真的找不到任何有用的文章,似乎工作。

該庫的文件夾中包含一些.SH文件,.PC文件,也有一些.la文件,但我有點不確定我有用作輸入到libtool哪些程序將它們編譯成一個.a文件。

所以我的問題是你有什麼文件輸入到的libtool到它們編成必要.A文件?你用什麼命令來完成這個?

謝謝大家的時間:)

回答

8

首先一點介紹靜態庫:

在Unix環境(類似於Mac OS和Linux太)靜態庫實際上只是對象文件檔案由ar命令行程序創建。

這就是.a擴展名所代表的含義:歸檔。

要創建一個靜態庫的一些目標文件可以使用的命令是這樣的:

ar crv libmy_library.a objectfile1.o objectfile2.o 

至於你的實際問題,libtool應自動生成文件被調用,創建庫,這是以.la結尾的文件。但是,這不是真正的圖書館,真正的圖書館是在一個隱藏的目錄。你可以通過做

find . -name '*.a' 

但就像我說的,makefile文件應該已經打理好一切,包括安裝正確的庫在正確的地方,當你做例如make install。請參閱this site

+0

很酷,感謝您的額外信息!非常有用:)而且是的,我發現makefile確實構建了庫,只是不在同一個文件夾中;)它們被構建到文件系統的本地文件夾中。感謝您的幫助 :) – CodingBeagle

相關問題