【问题标题】:VS2019+WDK10, missing Spectre-mitigated MSVC library for 16.11, why?VS2019+WDK10,缺少适用于 16.11 的 Spectre 缓解 MSVC 库,为什么?
【发布时间】:2021-12-19 14:00:32
【问题描述】:

这里有些奇怪的东西。我正在尝试使用 VS2019 16.11.5 和 WDK 10.0.19041.685(也称为 2004 年 12 月 2020 年更新版本)构建 KMDF 示例驱动程序。

首先,我收到编译错误,提示我需要下载 Spectre 缓解的 MSVC 库。

好吧,我尝试了一下,但遇到了一个新问题。 VS2019(16.11.5) 安装程序不显示 exact 16.11 的 MSVC Spectre 缓解 MSVC 库版本。看起来它提供的最新版本是 16.10 (????)。

下载16.10的,继续尝试,还是编译错误。

我查看了我的D:\VSIDE\VS2019\VC\Tools\MSVC 文件夹,看到列出的两个版本 MSVC 库,14.29.3013314.29.30037。后者是带有幽灵库的那个(所以它有 600MB 以上)。

但是,KMDF 构建工具坚持在 newer 14.29.30133 文件夹中查找 MSVC 库,因此仍然无法找到经过 Spectre 缓解的库。

我知道我可以手动将所需文件从 14.29.30037 复制到 14.29.30133 以继续进行。但这是一种体面的做法,还是微软工具集的错误?

我想问问其他内核驱动开发者是如何解决这个问题的。谢谢。

【问题讨论】:

  • 典型的敏捷问题,使用帮助 > 发送反馈来报告它。同时,编辑 .vcxproj 文件并添加 <Driver_SpectreMitigation>false</Driver_SpectreMitigation> 以继续前进。

标签: visual-studio-2019 wdk


【解决方案1】:

好吧,几天后,我找到了解决此问题的两种解决方法。

首先,正如Hans Passant 所述,禁用 .vcxproj 中的 Spectre 库。这可以从 UI 进行配置。

其次,为当前项目明确选择 MSVC 库版本。这也可以在项目设置 UI 中进行配置。

==== 2022.02.11 更新 ====

终于搞定了,版本号为14.29.30133的Spectre-lib被称为“(Latest)”,所以它被列在上面最旧的版本之上,这打败了新手。使用这个,问题就解决了。

当然,仅将其标记为“(最新)”就很愚蠢。他应该将其命名为 MSVC v142 - VS2019 C++ x64/x86 Spectre-mitigated libs (v14.29-16.11)(Latest)”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-07
    • 1970-01-01
    相关资源
    最近更新 更多