所以,我在编译/链接C ++项目时遇到的这个错误有点困惑。
在链接器配置的输入部分,我们还有一个文件名 Jsfwbase12D.lib 的附加依赖项。此文件最近更改为 Jsfwbase12.lib ,没有大写 D 。我将项目中的引用更改为新文件名,然后尝试重新编译并得到以下错误消息。
Error 2 fatal error LNK1104: cannot open file 'Jsfwbase12D.lib' m5gaddrs m5gaddrs
我在记事本中打开了vcproj文件并搜索了旧文件名,结果为零。
有没有人知道为什么链接器没有找到正确的文件而是试图找到旧文件?
编辑: 我在记事本中打开了obj文件,找到了旧的 Jsfwbase12D.lib 引用。所以看起来这就是链接器失败的原因。现在真正的问题是,如果没有在任何地方指定,编译器为什么要将这些引用插入调试模式?
/DEFAULTLIB:"Jsfwbase12D.lib"
答案 0 :(得分:2)
您的代码可能在某处包含#pragma comment(lib, "Jsfwbase12D.lib")
。这会向链接器通知在链接时间内包含的依赖项。