如何解决win10+VS2017+WDK环境下编译C++程序提示error LNK1104无法打开文件*.lib的问题

昨天在电脑上安装了VS2017+WDK了之后,遇到了一个很匪夷所思的问题:不管是编译任何工程,包括之前所有完全正常的项目,都会提示一个类似的错误:

1>------ 已启动生成: 项目: MyUSBEnum, 配置: Debug x64 ------
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(402,5): warning MSB8038: 已启用 Spectre 缓解,但找不到 Spectre 缓解库。验证 Visual Studio 工作负荷包括 Spectre 缓解库。有关详细信息,请参阅 https://aka.ms/Ofhn4c。
1>LINK : fatal error LNK1104: 无法打开文件“MSVCRTD.lib”
1>已完成生成项目“MyUSBEnum.vcxproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

换一个项目,提示的内容可能不完全一致,但是都是有一个MFC的库文件(比如mfc140d.lib等等)找不到。而这些工程之前明明都是OK的,完全没有问题的。这就奇怪了…

于是去百度、google、一大堆,各种尝试,很多人说是要修改项目配置,增加库文件的包含路径和头文件的包含路径。可是,这些项目我之前都是OK的,为什么会集体出现这个问题呢?肯定不是某个项目本身的配置的问题,于是继续查找…

最后,终于在微软的Developer Community里找到一篇帖子(点击此处跳转),官方技术人员提示需要安装libs for spectre(X86 and X64),这个组件在安装vs2017时默认不安装的。于是打开vs2017 installer,在单个组件tab中找到libs for spectre(X86 and X64),以及带有spectre缓解措施的ATL和MFC补丁,安装完成以后,再次编译C++ Project就可以通过了。如下:
如何解决win10+VS2017+WDK环境下编译C++程序提示error LNK1104无法打开文件*.lib的问题_第1张图片
如何解决win10+VS2017+WDK环境下编译C++程序提示error LNK1104无法打开文件*.lib的问题_第2张图片
搞定!

你可能感兴趣的:(玩转windows)