2010-05-29 144 views
3

我有兩個預編譯的庫:X.aY.a和test.cpp(沒有主函數)源代碼使用這兩個庫。鏈接GCC中的.a和.o文件

我編寫的C++使用:

g++ -c test.cpp

,我得到了 'test.o'。

現在如何將這三者連接在一起生成.a文件,因爲test.cpp在X.a和Y.a以及其他GCC庫中使用了一些函數?

順便說一句,我正在使用MinGW在Windows下進行這些操作。我可以將這個.a文件重命名爲.lib並在VC中使用.lib嗎?

謝謝!

回答

5

現在,我怎麼連接這三個 起來產生某文件,因爲 TEST.CPP使用X.a和 Y.a和其他海灣合作委員會圖書館的一些功能?

.a無非是那麼ar歸檔方含所有目標文件(.o文件)

我可以重命名此某文件到.LIB和 使用本的.lib在VC?

是的,但它需要一點小技巧才能工作。參見: http://opensees.berkeley.edu/community/viewtopic.php?t=2267

3

爲了你的目標文件添加到您必須使用以下命令靜態庫:

ar rcs X.a test.o 

但如果你提供Xa和Ya我想你是不是X和Y的作者,所以我不確定你真的想加入他們!

您可能決定將每個目標文件鏈接到一個可執行文件中,但您需要使用main函數!

編輯: 另外我建議你閱讀this

+0

謝謝。問題是我需要使用GCC來獲取一個靜態庫,並使用VC來鏈接這個靜態庫,因爲我已經在GCC中做了一些fortran的東西.. – 2010-05-29 10:43:54

+0

@David:不幸的是我對VC沒有任何瞭解,但似乎那vartec給了你一些有用的信息。 – Dacav 2010-05-29 11:04:44