如何为 Visual Studio 2019 安装 WDK

我用nmake编译代码提示错误:fatal error U1052: 未找到文件"\makefile.def",经过排查发现是代码依赖WDK,所以研究了一下WDK的安装步骤,下面是具体步骤:

请遵循以下步骤来为你的 VS2019 搭建完整的驱动开发环境:

第 1 步:确认 Visual Studio 2019 工作负载

首先,确保你的 VS2019 已经安装了 "使用 C++ 的桌面开发" 工作负载。这是基础。

  1. 打开 Visual Studio Installer

  2. 找到你的 Visual Studio 2019 产品,点击 "修改"

  3. "工作负载" 选项卡中,确保 "使用 C++ 的桌面开发" 已被勾选。

  4. 点击 "修改" 按钮完成更改(如果需要)。

第 2 步:下载并安装 WDK

WDK 是通过一个独立的安装程序分发的,这个安装程序会智能地检测你的 VS2019 并进行集成。

  1. 访问官方下载页面

    这是最重要的步骤。前往微软官方文档页面:
    下载 Windows Driver Kit (WDK)

  2. 选择与你的目标系统匹配的版本

    • 页面会提供最新版本的 WDK 下载链接。

    • 非常重要 :你下载的 WDK 版本必须与你想要编译的驱动程序所目标运行的 Windows 版本兼容。例如,要开发 Win11 驱动,就下载最新的 WDK。

  3. 运行安装程序

    • 下载完成后,运行 wdksetup.exe

    • 安装程序会自动检测到你系统已安装的 Visual Studio 2019。

    • 它还会检查并可能会引导你安装所需版本的 Windows SDK(如果尚未安装)。WDK 依赖于特定版本的 Windows SDK,安装程序会帮你处理好这个依赖关系。

    • 跟随安装向导的提示完成安装即可。

第 3 步:验证安装

安装完成后,通过最有效的方法验证:

  1. 打开 Visual Studio 2019

  2. 点击 "创建新项目"

  3. 在右侧的搜索框中输入 driver 进行搜索。

  4. 如果你能看到以下模板,说明 WDK 已成功安装并集成:

    • Kernel Mode Driver, Empty (KMDF)

    • Kernel Mode Driver (WDM)

    • User Mode Driver (UMDF)

    • Empty WDM Driver

    https://learn.microsoft.com/zh-cn/windows-hardware/drivers/download-images/vs2019-new-project.png


如果你已经安装了WDK,但之前编译仍出错

考虑到你之前遇到的 nmakemakefile.def 的错误,即使安装了WDK,也请务必通过正确的入口启动开发环境

不要直接从开始菜单打开 Visual Studio 2019 或普通的命令提示符。

  1. 开始菜单 中,找到 Visual Studio 2019 的文件夹。

  2. 在其中选择 "x64 Native Tools Command Prompt for VS 2019""Developer Command Prompt for VS 2019"

    • 对于驱动开发,强烈推荐使用 x64 Native Tools ...
  3. 在这个特殊的命令提示符窗口中,导航到你的驱动项目目录。

  4. 再次运行 nmake 命令。

这个特殊的命令提示符已经为你设置好了所有必要的环境变量(包括 PATH, INCLUDE, LIB, NTMAKEENV),所以它能找到 makefile.def 和你需要的所有编译器、链接器。

总结

项目 情况
VS2019 默认带WDK吗? 不带,需要额外安装。
如何安装? 微软官方 Learn 站点 下载 wdksetup.exe 并运行。
安装关键点 安装程序会自动集成到已存在的 VS2019 中,并处理 Windows SDK 的依赖。
验证方法 在 VS2019 中创建新项目,能搜到驱动模板即为成功。
运行环境 必须 使用 x64 Native Tools Command Prompt for VS 2019 来运行 nmake 或构建传统驱动项目。

遵循这个流程,你的 VS2019 就能完美地编译驱动程序项目了。

相关推荐
摇滚侠14 天前
IDEA 创建 Java 项目 手动整合 SSM 框架
java·ide·intellij-idea
霸道流氓气质14 天前
Trae IDE 新手入门指南
ide
爱就是恒久忍耐14 天前
VSCode里如何比较2个branch
ide·vscode·编辑器
bloglin9999914 天前
vscode中可视化的合并分支,在“合并编辑器中解析”中“与基线进行比较”是什么意思
ide·vscode·编辑器
终将老去的穷苦程序员14 天前
IntelliJ IDEA 的安装教程
java·ide·intellij-idea
我不是懒洋洋14 天前
【C++】string(string的成员变量、auto和范围for、string常用接口的说明、OJ题目、string的模拟实现)
c语言·开发语言·c++·visual studio
C++ 老炮儿的技术栈15 天前
Ubuntu root账号自动登陆
linux·运维·服务器·c语言·c++·ubuntu·visual studio
春日见15 天前
vscode的AI编程插件推荐:
大数据·ide·vscode·算法·机器学习·编辑器·ai编程
lazy H15 天前
Spring Boot 项目如何连接 Redis?新手入门配置和常见错误总结
ide·spring boot·redis·后端·学习·intellij-idea
2601_9620549515 天前
终端与IDE形态的vibe coding实测:两款AI编程工具迭代能力对比
数据库·ide·ai编程