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

问题描述 投票:4回答:2

我正在Visual Studio 2017中进行C ++,最近刚刚将更新的Windows 10从Anniversary Update更新为Creator的更新。

我偶然发现,当我编译DLL项目时,我会收到错误消息:

LNK1104 - cannot open file 'kernel32.lib'

在项目属性中稍微调整一下后,我注意到如果Windows SDK版本从10.0.14393.0设置为10.0.15063.0,则会显示错误消息。如果我把它设置回10.0.14393.0,我可以编译得很好。

我想知道为什么当Windows SDK版本设置为Creator的Update版本时,它会抛出此错误消息,但如果设置回Anniversary Update的构建版本则不会?

谢谢。

c++ windows visual-studio
2个回答
6
投票

https://developercommunity.visualstudio.com/content/problem/41913/link-fatal-error-lnk1104-in-empty-c-project.html

Windows 10 Creators Update SDK对作为安装的一部分安装的内容进行了一些重大更改,以最大限度地减少磁盘占用空间。这是一个已知问题,由于重构工作,默认情况下不会安装Creators Update SDK的“桌面”组件。以前的新项目逻辑总是选择最新的Windows 10 SDK,假设桌面部分是作为安装方案的一部分安装的。我们正在努力修复未来的更新。

可用的解决方法如下:

  1. 选择项目属性中完全安装在系统上的Windows 10 SDK版本(即10.0.14393.0或更早版本)
  2. 通过Visual Studio安装程序安装'Windows 10 SDK(10.0.15063.0)for Desktop'组件。 win10sdk-15063desktop.png

丹尼尔格里芬,

Visual C ++库


0
投票

我有同样的问题,老实说,看起来像VS 2017中的一个错误。只需切换到10.0.10586.0

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