VS2017 LNK1104 无法打开文件kernel32.lib问题解决方案

最近用VS2017颇为不爽,总觉得自己有debuff,各种报错。
这个LNK1104问题也是找了好久才解决的。(辣鸡某度,浪费我生命,此处应该讨论学会日常科学上网的重要性)

原因

编译器未找到kernel32.lib的原因为VC++目录中的库目录缺少了lib库目录,导致编译器编译的时候找不到相应的lib文件导致link失败,所以解决方案也很简单,把相应的库目录添加进VC++目录的库目录即可。

安装Windows SDK

因为我的是VS2017,所以我就以我的版本为例。
①打开VS2017的安装程序,我的Installer在这个目录下:C:\Program Files (x86)\Microsoft Visual Studio\Installer,在该目录下找到vs_installer.exe,运行。
②点击安装程序中你所安装vs版本的 修改==>单个组件==>SDK、库和框架,勾上Windows 10 SDK(10.0.14393.0),然后点击右下角的修改
③等待安装完成

临时方案

因为微软自从VS2015之后就把菜单栏==>工具==>选项==>VC++目录这个进入VC++目录的方法和谐了,所以之后版本进入VC++目录的方法是从当前项目的解决方案管理器的用户属性页进入的,因此

①随意开启一个VS项目,菜单栏==>视图==>解决方案资源管理器==>右键解决方案资源管理器中的项目名称==>属性==>配置属性==>VC++目录
②在项目属性[VC++目录]下的 [包含目录] 添加$(WindowsSDK_IncludePath)
③在项目属性[VC++目录]下的在[库目录]添加$(WindowsSDK_LibraryPath_x86) 或者 $(WindowsSDK_LibraryPath_x64)

注意添加;分号

如果以上方法尝试过还是报错的话,那就要手动把kernel32.lib的目录添加至VC++目录下的库目录中,我电脑的kernel32.lib的所在目录为C:\Program Files (x86)\Windows Kits\10\Lib\10.0.14393.0\um\x86;

永久方案

临时方案不能解决根本问题,每次新建一个项目就要重复一遍之前的操作,因为在右键项目弹出来的属性页中不能修改全局的属性,所以需要按照以下步骤修改全局项目属性:

①菜单栏==>视图==>其他窗口==>属性管理器
②修改Debug|Win32==>Microsoft.Cpp.Win32.user==>通用属性==>VC++目录,然后把临时方案中在当前页面下操作一遍。

以我为例,我将C:\Program Files (x86)\Windows Kits\10\Lib\10.0.14393.0\um\x86;添加到了库目录下(没错,我就是那个①-③步骤尝试过依旧报错的家伙)然后点击确定。

注意: 我这里修改的是32位的Debug模式的属性,所以手动添加的库目录是C:\Program Files (x86)\Windows Kits\10\Lib\10.0.14393.0\um\x86;如果你修改的是64位的Debug或者Release的属性,请注意库目录的是否选择正确,64位应该添加$(WindowsSDK_LibraryPath_x64)或者C:\Program Files (x86)\Windows Kits\10\Lib\10.0.14393.0\um\x64;