如何摆脱VS 13中的错误“链接:致命错误LNK1104:无法打开文件'LIBC.lib'”?
Posted
技术标签:
【中文标题】如何摆脱VS 13中的错误“链接:致命错误LNK1104:无法打开文件\'LIBC.lib\'”?【英文标题】:How to get rid of Error " LINK : fatal error LNK1104: cannot open file 'LIBC.lib' " in VS 13?如何摆脱VS 13中的错误“链接:致命错误LNK1104:无法打开文件'LIBC.lib'”? 【发布时间】:2016-01-06 13:33:30 【问题描述】:我的应用程序在调试模式下构建良好,但是当我在发布模式下构建相同的应用程序时,它会抛出此链接器错误“LINK:致命错误 LNK1104:无法打开文件 'LIBC.lib'”。我发现这个问题在这里得到了回答lnk1104: cannot open 'LIBC.lib' LINK
但是现在我正在从 VS 6 迁移到 VS 13。我尝试了那里给出的第一个和第三个选项。但是还是不行。
在尝试第二个选项时,我最初并没有在其他依赖项中找到 libc.lib。
在尝试第四个选项时,libc.lib 不在我的电脑中的位置。
那么有人可以告诉我如何在 VS 13 中修复它,或者建议我一个可以下载选项 4 中建议的文件的地方吗??
【问题讨论】:
Libc.lib 是上个世纪的老名字,今天是 libcmt.lib。最简单的解释是您没有重建您链接的所有库。使用 /VERBOSE 链接器选项查看更多信息。 【参考方案1】:可能是因为您仅在调试模式下链接了库
在
project->properties
您可以在窗口左上角的组合框中选择配置 (Debug\Release)。确保
C/C++ -> General -> Additional Include Directories
和
Linker -> Input -> Additional Dependencies
Debug 和 Release 模式下的选项相同。
另外,也许您将为 Debug 构建的库链接到您的 Release 模式,在这种情况下,您应该将其更改为在 Release 中构建的库。
【讨论】:
是的,发布和调试都一样 也许您将调试库链接到您的发布模式? Debug 构建库的调用通常与 Release 相同,但名称中带有字母“d”。【参考方案2】:我在一个大项目中遇到了类似的问题。我尝试了/VERBOSE
,但没有多大帮助 - 它表明链接器正在寻找libc.lib
,但不是为什么。最后,我确实发现有一个静态库链接,它是用旧版本的 VisualStudio 构建的。不幸的是,我们没有该库的源代码,所以我按照lnk1104: cannot open 'LIBC.lib' LINK 的“选项 3”中的方法进行操作。不能说为什么这对你不起作用 - 你能分享你遇到的错误吗?
因此,要识别导致链接器尝试查找libc.lib
的库,请检查所有静态.lib
s,并检查它们是如何构建的。如果您没有其他线索,请在.lib
文件本身中搜索LIBC
。
【讨论】:
以上是关于如何摆脱VS 13中的错误“链接:致命错误LNK1104:无法打开文件'LIBC.lib'”?的主要内容,如果未能解决你的问题,请参考以下文章
如何在使用 request.data 时摆脱 Python 中的“Json 文件导入错误”?