Visual Studio:哪个源文件包含特定的库(带"pragma comment")?



EDIT:解决了James McNellis的建议,这使我找到了令人讨厌的库。这是我没有和垃圾箱核对过的。

我正在构建一个Visual Studio 2013项目,该项目使用"#pragma comment"来链接静态库,而不是在项目属性中列出库。在用新版本替换库之后,我得到一个链接错误,因为它仍然试图找到一些旧的库,例如,它找不到"library_v9"。Lib "当它应该链接"library_v12。自由"。我怎样才能找到旧图书馆的地址?以下是我尝试过的:

  • 删除所有对象等,从头开始重建。

  • 搜索"#pragma comment"不起作用,因为它被构建成几层宏,并且版本号是从_MSC_VER获得的,因此"9"one_answers"12"实际上从未出现在源代码的任何地方。

  • 对所有链接到可执行文件中的库运行dumpbin/DIRECTIVES。它们都指向正确的"12"库版本

链接器有一个/verbose开关,它会打印出一个详细的日志,包括它正在打开哪些库,它正在搜索哪些符号,以及它为什么要搜索这些符号。

通常,调试这类问题最直接的方法是将/verbose添加到链接器选项中,在文本编辑器中打开构建日志,然后搜索您感兴趣的库名称或符号。在本例中,搜索"library_v9.lib"。链接器将告诉您是什么原因导致它打开该库。

您是否检查了属性->链接器->输入部分?

最新更新