为什么链接器会尝试链接到我从未告诉它链接到的文件?

Bri*_*ice 1 linker wxwidgets static-libraries static-linking visual-c++

我收到链接器错误,指示链接器无法打开文件(静态库),因此失败.我正在非常困难地排除此错误,因为我从未告诉链接器链接到它无法打开的文件.

我告诉链接器链接到几个静态库.我链接的许多库都是wxWidgets静态库.我不需要来自wxWidgets的所有模块,因此有一些我链接到的和许多我不是.链接器无法打开的文件是'wxbase31ud_net.lib'.就像我说的那样,该文件不在我链接的库中.我的直接想法是,这种依赖性是以某种方式隐式引入的,可能是我链接到的一个wxwidgets库.我不认为静态链接是这样工作的,但我没有任何其他想法.我一直在研究这种可能性,但我没有发现任何迹象表明情况.

  • 我将构建输出详细程度设置为最大值,并且在报告错误之前从未提及过'wxbase31ud_net.lib'.
  • 我在我的cmake项目中确认有问题的文件从未从FindWxWidgets模块传回给我,并且从未在与目标关联的任何文件列表中引用.
  • 我浏览了整个项目目录,发现在任何地方都没有引用该文件,包括cmake生成的项目文件(visual studio项目文件).

什么可能导致链接器尝试打开此文件?

编辑:另外,要清楚,我看到的错误是LNK1104

zer*_*mus 5

它可能来自一个#pragma comment(lib,"???")除了在wx的情况下,pragma的参数可能是复杂的宏而且很难grep.这个特殊的可以来自setup.h #pragma comment(lib, wxWX_LIB_NAME("base", "")).您应该通过将带有wx libs的目录添加到链接器的搜索目录来解决此问题.