链接时,如何找出哪个源库引用了不存在的目标库

时间:2014-04-29 03:59:28

标签: visual-c++ linker

我意识到我必须应对这样的问题。使用Visual C ++ 2008编译旧程序,我收到错误

LINK : fatal error LNK1104: cannot open file 'LIBC.lib'

在检查VC项目设置之后,我认为这是由于嵌入了LIBC.LIB链接指令的Visual C ++ 6时代编译的旧lib(将链接到最终的EXE)引起的(由cl /ML...)。

因为我的项目中添加了很多库,所以我认为我需要快速查找哪些lib包含LIBC.LIB链接指令以便我可以修复那些使用/MT的库。

BTW:使用/NODEFAULTLIB:LIBC.LIB链接器选项作为解决方案并不合适,因为单线程CRT和多线程CRT之间存在二进制接口不兼容。

2 个答案:

答案 0 :(得分:1)

我不确定,因为我有一段时间没有在VisualStudio中开发,但dumpbin工具可能会为您提供有关您库的相关信息。作为命令行工具,您可以轻松地在文本文件中捕获其输出并在其中进行搜索。

答案 1 :(得分:0)

您可以尝试使用依赖性walker。 http://www.dependencywalker.com/