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

我在Visual Studio 2017中执行C ++,最近刚刚更新了从周年更新到创build者更新的Windows 10。

我偶然发现,当我编译一个DLL项目时,我会得到错误信息:

LNK1104 - cannot open file 'kernel32.lib'

在项目属性中10.0.14393.0了一下之后,我注意到如果Windows SDK版本从10.0.14393.0设置为10.0.15063.0 ,就会出现错误信息。 如果我把它设置回10.0.14393.0 ,我可以编译得很好。

我想知道为什么当Windows SDK版本被设置为Creator的更新版本,它会抛出这个错误消息,但是如果设置回周年更新版本,它不会。

谢谢。

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

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

Daniel Griffing,

Visual C ++库

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