2010-05-29 168 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