0

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

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

在明确的指示下: $$ITPP_DIR/libs/libtpp.a 一切正常。

链接器使用 -l"lib" 指令查找库的规则是什么?

提前致谢。

4

1 回答 1

0

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

相关信息将在子标题“直接链接到 dll”下找到;请注意,当两者都存在时,ld 总是更喜欢 libfoo.dll.a 而不是 libfoo.a,除非您为 -lfoo 指定 -Bstatic,或更一般地为所有此类模棱两可的 -l 规范指定 -static。

于 2015-04-02T09:27:29.767 回答