我有两个预编译库:X.a
和Y.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吗?
谢谢!
答案 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。