在GCC中链接.a和.o文件

时间:2010-05-29 10:35:36

标签: c++ gcc visual-c++ mingw

我有两个预编译库:X.aY.a以及一个test.cpp(没有main函数)源代码使用这两个库。

我使用:

编译了C ++

g++ -c test.cpp

我得到'test.o'。

现在我如何将这三个链接起来生成.a文件,因为test.cpp在X.a和Y.a以及其他GCC库中使用了一些函数?

BTW,我在Windows下使用MinGW进行这些操作。我可以将此.a文件重命名为.lib并在VC中使用此.lib吗?

谢谢!

2 个答案:

答案 0 :(得分:5)

  

现在我如何将这三者联系起来   一起生成一个.a文件,因为   test.cpp在X.a和。中使用一些函数   Y.a和其他GCC图书馆?

.a只是ar存档包含所有目标文件(.o文件)

  

我可以将此.a文件重命名为.lib和   在VC中使用这个.lib?

是的,但这需要一点工作。看到: http://opensees.berkeley.edu/community/viewtopic.php?t=2267

答案 1 :(得分:3)

要将目标文件添加到静态库,必须使用以下命令:

ar rcs X.a test.o

但如果你被提供X.a和Y.a我认为你不是X和Y的作者,因此我不确定你真的想加入他们!

您可能决定将每个目标文件链接到一个可执行文件中,但您需要main函数!

修改 另外,我建议你阅读this