错误无法打开文件“kernel32.lib”

问题描述 投票:0回答:10

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

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

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

从这篇文章:致命错误LNK1104:无法打开文件'kernel32.lib'我去寻找kernel32.lib文件,它位于这里:

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

当我进入我的项目属性-->链接器-->输入并选择宏时,我发现这条路径确实存在:

enter image description here

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

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

visual-c++ visual-studio-2015 kernel32
10个回答
10
投票

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

项目->属性->VC++目录: 包括目录


6
投票

我必须安装 Visual C++ 进行桌面开发。

打开 Visual Studio 安装程序并转到

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

后来它对我有用。


3
投票

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

因此,对我有用的解决方案在我自己的答案无法编译 64 位 Visual Studio 2010 项目中进行了描述,我在这里完全转录:

在我向同事寻求帮助后,我们注意到,即使得到 从 TFS 干净构建项目,并使用覆盖选项 项目的配置属性 > 我的计算机上的 VC++ 目录 总是与其他计算机不同。

搜索更多,我们在重置的最后一篇文章中找到了解决方案 include/lib 路径,我将完整转录:

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

然后我查看了

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

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


3
投票

在 VS 2022 中,我试图编译一个最初在 VS 2010 中运行然后在 VS 2019 中运行的旧解决方案。它不断地给我“找不到 Kernel32.lib”错误。 我花了 8 个小时尝试了所有内容,包括本页上的所有内容。 对我有用的:配置属性 -> VC++ 目录 -> 库目录和“从父级继承”(猜测这设置为默认值)为我解决了这个问题。 另请注意:我使用的是winsock 和directinput。


2
投票

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


2
投票

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

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

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

谢谢你。


2
投票

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


1
投票

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

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

使用该选项会将其重置为有效的值(假设 SDK 安装正常),当然不需要默认值以外的任何值。 就我而言,它试图指向 v7.1 SDK,但没有为 vs2017 安装。


0
投票

我今天在 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

我这里有更详细的回复:

致命错误 LNK1104:无法打开文件“kernel32.lib”


0
投票

这是您所有问题的解决方案 - https://github.com/AmenokeAkira/Visual-Studio-Fishing

© www.soinside.com 2019 - 2024. All rights reserved.