错误无法打开文件'kernel32.lib'

Posted

技术标签:

【中文标题】错误无法打开文件\'kernel32.lib\'【英文标题】:error cannot open file 'kernel32.lib'错误无法打开文件'kernel32.lib' 【发布时间】:2017-01-23 16:30:31 【问题描述】:

我已经在 Windows 7 上安装了 VS2013 和 VS2015。

我有一个现有的 C++ Dll 项目,该项目正在构建,但现在它突然无法使用 VS2015 构建并给我错误:

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

来自这篇文章:fatal error LNK1104: cannot open file 'kernel32.lib' 我去寻找 kernel32.lib 文件,它位于这里:

C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x86

当我转到我的项目 Properties-->Linker-->Input 并选择 Macros 时,我看到这条路径确实存在:

我的平台工具集设置为 Visual Studio 2013 - Windows XP (v120_xp),这是它一直以来的设置。

为什么我的项目突然停止构建?可能出了什么问题?

【问题讨论】:

看看我的回答 ***.com/a/39472273/383779 是否能在某种程度上有所帮助。检查你的道具文件。 这解决了我的朋友非常感谢:) 对于 VS2017,没有人的解决方案适用于这个或类似的答案。我的解决方案最终是通过 2017 安装程序卸载我的 Win10 SDK 以及 v140 和 v141 工具集,然后重新安装它们。问题解决了。 【参考方案1】:

我今天在更改我的 VC++ 目录时遇到了与 Visual Studio 2013 类似的问题:

项目->属性->VC++ 目录: Include Directories

【讨论】:

【参考方案2】:

如果原因是某些插件/扩展更改了您的 props 文件,则可能会因此更改项目的“Visual C++ 目录”设置。

因此,对我有用的解决方案在我自己的答案 Can't compile 64 bits Visual Studio 2010 projects 中进行了描述,我将其完整转录到此处:

在我向一位同事寻求帮助后,我们注意到,即使 从 TFS 清理项目的构建,带有覆盖选项, 项目的配置属性 > 我电脑上的 VC++ 目录 总是与其他计算机不同。

在Reset include/lib path的最后一个帖子中找到了更多的解决方案,我将完全转录:

使用“del %HOMEPATH%\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props” 并不总是正确的方法。 最好使用“del %USERPROFILE%\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props” 应用程序数据文件夹通常放置的位置。

然后我查看了Microsoft.Cpp.x64.user.props的内容 我已经看到 Visual Leaks Detector 添加了一些东西。 这是合理的,就像一个月前,我做了一个内存泄漏分析 使用 VLD。

所以,我删除了该文件,现在一切都可以在 64 位上正常编译了!

【讨论】:

【参考方案3】:

我今天也遇到了同样的问题。事实证明,SDK 10.0.15063.0 以某种方式安装在我的系统上,但没有桌面 C++ 文件。在已安装程序列表中选择 SDK,进行更改安装,然后选择 Desktop C++ 选项添加了必要的文件,现在我可以再次链接。

【讨论】:

【参考方案4】:

我收到此错误致命错误 lnk1104:无法打开文件 'kernel32.lib'。 出现此错误是因为 VC++ 目录中没有路径。 解决这个问题

    打开视觉工作室 2008 转到工具-选项-项目和解决方案-VC++ 目录-* 然后在右上角选择库文件 这里需要添加kernel132.lib的路径

就我而言,它是 C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib

谢谢。

【讨论】:

【参考方案5】:

我将一些项目从 VS2013 升级到 VS2017。

原始项目对项目设置中VC++目录下的“库目录”项进行了手动修改。 这意味着它没有从升级中获取更改。

使用该选项会将其重置为可以工作的东西(假设 SDK 安装正常),当然不需要默认值以外的任何东西。在我的情况下,它试图指向 v7.1 SDK,但没有为 vs2017 安装。

【讨论】:

【参考方案6】:

我今天在使用 Visual Studio 2017 时遇到了类似的问题。我的原因原来是 NETFXSDKDir 中的错误环境设置,具体来说:

NETFXSDKDir=C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1

它需要有一个值:

C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\um\x86

我这里有更详细的回复:

fatal error LNK1104: cannot open file 'kernel32.lib'

【讨论】:

【参考方案7】:

我必须安装用于桌面开发的 Visual C++。

打开 Visual Studio 安装程序并转到 Installed 选项卡。单击已安装的 Visual Studio Community Edition 上的 Change 按钮。 -> 在Workloads 选项卡上应该有一个选项Desktop Development with C++。激活该选项并修改更改。

后来它对我有用。

【讨论】:

【参考方案8】:

在 vs 2019 中,只需运行安装程序,单击修改,然后在单个组件选项卡中,删除 windows 10 SDK。然后再次运行安装程序并添加 windows 10 sdk!

【讨论】:

以上是关于错误无法打开文件'kernel32.lib'的主要内容,如果未能解决你的问题,请参考以下文章

请问无法打开kernel32.lib怎么解决?

请问无法打开kernel32.lib怎么解决?

LINK : fatal error LNK1104: 无法打开文件“kernel32.lib

用visual studio 2010总是提示 1>LINK : fatal error LNK1104: 无法打开文件“kernel32.lib”

当 Windows SDK 版本设置为 15063.13 时,“LNK1104 无法打开文件 'kernel32.lib'”

VS2022 无法打开文件kernel32.lib