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

时间:2016-09-15 15:13:07

标签: visual-c++ visual-studio-2015 kernel32

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

当我转到我的项目属性 - >链接器 - >输入并选择宏时,我看到此路径确实存在:

enter image description here

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

为什么我的项目突然停止建设?什么可能出错?

8 个答案:

答案 0 :(得分:2)

如果原因是某些插件/扩展名会更改您的道具文件,则可能会更改" 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位编译好了!

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

I had this similar problem today with Visual Studio 2017. My cause turned out to be a bad environment setting in NETFXSDKDir, specifically:

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

It needed to have a value of:

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

I have a more detailed response here:

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

答案 4 :(得分:0)

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

  1. open visual studio 2008
  2. 转到工具 - 选项 - 项目和解决方案 - VC ++目录 - *
  3. 然后在右上角选择图书馆文件
  4. 在这里你需要添加kernel132.lib的路径
  5. 在我的情况下它是C:\ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Lib

    谢谢。

答案 5 :(得分:0)

在将某些项目从VS2013升级到VS2017之后,我进行了以下工作。

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

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

答案 6 :(得分:0)

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

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

后来它对我有用。

答案 7 :(得分:0)

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