vs2019装了WDK后,编译其他vc工程,提示无法打开文件"msvcprtd.lib"
今天安装了vs2019,而后又安装了wdk,随便写了一个控制台测试程序,居然报错。网上也查了一圈,也没有得到解决。报错内容如下:
MSB8038:已启用Spectre缓解,但找不到Spectre缓解库。验证Visual Studio工作负荷包括Spectre缓解库。 LNK1104:无法打开文件"msvcprtd.lib".
截图如下:
看了报错,应该是缺少msvcprtd.lib这个文件或者路径错了。打开vs设置,查看一下库路径。发现$(VC_LibraryPath_x86)宏对应的路径如下:
我搜了一下这个路径,根本就不存在,没有找到带Spectre的目录,这就难怪会报错了,要解决这个问题,首先想到的是改一下这个宏,找了半天,发现这个宏在一个文件中,也找到了对应的修改的地方。但是觉得修改vs默认的配置不是很好,所以需要另外想办法,发现这个Spectre和上面的警告有关,于是百度了一下,找到了下面的连接:https://docs.microsoft.com/zh-cn/cpp/build/reference/qspectre?view=vs-2017。里面详细介绍了这个Spectre的CPU漏洞相关补丁。
具体解决办法如下:
把Spectre缓解改成警用即可。
但这种方法每个新的项目都需要修改,所以建议安装对应的包。具体包看截图
至此问题顺利解决。