链接器(来自MinGW的ld v2.23.2)格式错误:-L <somedir> -l <​​lib1 -l <​​lib2 =“”>,</lib1> </somedir>

时间:2015-03-26 05:08:42

标签: c++ windows linker mingw import-libraries

来自mingw-builds 4.8.0 32位套件的ld v2.23.2。在我的项目目录中有libs:libitpp.a和libitpp.dll.a。第一个是简单的静态lib,第二个是导入库到对应的共享库(Windows上的DLL)。

我告诉链接器以下列形式链接libs: -L $$ ITPP_DIR / libs -litpp 并且链接器总是选择第二个lib(libitpp.dll.a),但我想要第一个(libitpp.a),因为“-litpp”与它完全匹配。

明确指示: $$ ITPP_DIR /库/ libitpp.a 好的。

链接器用于在-l“lib”指令中查找库的规则是什么?

提前致谢。

1 个答案:

答案 0 :(得分:0)

这可能是一个重复的问题,但我不会因此而责备你,我只会再次给你文档链接:https://sourceware.org/binutils/docs/ld/WIN32.html#WIN32

相关信息将在小标题“直接链接到dll”下找到;请注意,当两者都存在时,ld总是更喜欢libfoo.dll.a到libfoo.a,除非你为-lfoo指定了-Bstatic,或者对于所有这些不明确的-l规范都指定了-static。