如何摆脱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 的库,请检查所有静态.libs,并检查它们是如何构建的。如果您没有其他线索,请在.lib 文件本身中搜索LIBC

【讨论】:

以上是关于如何摆脱VS 13中的错误“链接:致命错误LNK1104:无法打开文件'LIBC.lib'”?的主要内容,如果未能解决你的问题,请参考以下文章

如何摆脱 Visual Studio 中的错误?

如何在使用 request.data 时摆脱 Python 中的“Json 文件导入错误”?

如何摆脱 TypeScript 中的 $injector 类型错误?

如何摆脱python中的ascii编码错误

如何摆脱ffmpeg中的“抖动缓冲区已满”错误?

如何摆脱 Visual Studio 2019 中的密码提示?