首页
社区
课程
招聘
[分享]vs2017+WDK 如何解决 warning MSB8038: 已启用 Spectre 缓解
发表于: 2019-3-9 21:25 12826

[分享]vs2017+WDK 如何解决 warning MSB8038: 已启用 Spectre 缓解

2019-3-9 21:25
12826
错误提示:  
Enterprise\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(402,5): warning MSB8038: 已启用 Spectre 缓解,但找不到 Spectre 缓解库。验证 Visual Studio 工作负荷包括 Spectre 缓解库。
1>LINK : fatal error LNK1104: 无法打开文件“msvcrt.lib”

 解决方案:
安装libs for spectre(X86 and X64),这个组件在安装vs2017时默认不安装的。


根据2楼的提示 补充

引用

Spectre小计

https://www.cnblogs.com/qiyueliuguang/p/10370292.html





具体解决办法如下:

把Spectre缓解改成警用即可。

但这种方法每个新的项目都需要修改,所以建议安装对应的包。具体包看截图:



广告站csdn有图

引用

https://blog.csdn.net/LEON1741/article/details/87392536



昨天在电脑上安装了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 个 ==========

1

2

3

4

5

换一个项目,提示的内容可能不完全一致,但是都是有一个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就可以通过了。如下:



搞定









[课程]FART 脱壳王!加量不加价!FART作者讲授!

最后于 2019-3-9 23:35 被VCKFC编辑 ,原因: Tennn 补充方法
收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 9934
活跃值: (2554)
能力值: ( LV6,RANK:87 )
在线值:
发帖
回帖
粉丝
2
可以直接关了
2019-3-9 21:34
0
雪    币: 1176
活跃值: (1234)
能力值: ( LV12,RANK:380 )
在线值:
发帖
回帖
粉丝
3
2019-3-9 22:56
0
雪    币: 1046
活跃值: (1261)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
4
正解在这:https://bbs.pediy.com/thread-248486.htm 
2019-3-10 11:38
0
雪    币: 1235
活跃值: (1230)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
x86 x64平台的ARM版本可以不用下载,下x86x64版本就行了
2019-3-10 22:22
0
雪    币: 137
活跃值: (358)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
组件怎么下都还是不行。
 我这里Google到的解决办法是把 "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VC\VCTargets\Platforms\($PLATFORM)\ImportBefore\Default\Microsoft.Cpp.WDK.props" 文件中的
  <PropertyGroup>
    <SpectreMitigation Condition="'$(SpectreMitigation)' == ''">Spectre</SpectreMitigation>
  </PropertyGroup>
注释掉。
2019-12-3 16:21
0
游客
登录 | 注册 方可回帖
返回
//