如何為 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,但之前編譯仍出錯

考慮到你之前遇到的?nmake?和?makefile.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 就能完美地編譯驅動程序項目了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/96456.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/96456.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/96456.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用 Apache Flink CDC 3.0 實現 MySQL 到 Elasticsearch 的數據同步

下面我將創建一個完整的 Spring Boot 項目,使用 Flink CDC 3.0 基于 MySQL 的 binlog 實現數據同步到 Elasticsearch。 項目概述 這個項目將: 使用 Flink CDC 連接 MySQL 并讀取 binlog處理數據變化(插入、更新、刪除)將數據同步到…

Web網站的運行原理2

請求Web網站的文件-HTTP 可以使用HTTP協議在Web瀏覽器和Web服務器應用程序之間傳輸Web網頁的文件。 在進行HTTP傳輸之前,需要先在Web瀏覽器和Web服務器應用程序之間建立TCP連接。 使用HTTP請求可以要求Web瀏覽器向Web服務器應用程序傳輸文件。 傳輸Web網站的文件-HT…

論文閱讀:Do As I Can, Not As I Say: Grounding Language in Robotic Affordances

地址:Do As I Can, Not As I Say: Grounding Language in Robotic Affordances 摘要 大型語言模型(LLM)能夠編碼豐富的世界語義知識,這類知識對于機器人執行自然語言表達的高層級、時間擴展指令具有重要價值。然而,語…

Django管理后臺結合剪映實現課件視頻生成應用

在教學內容的數字化制作中,如何將課件與音頻快速轉換為視頻是一項高頻需求。借助管理后臺和剪輯工具,可以實現課件內容的下載、轉換和草稿生成,大幅減少重復操作。 【AI教育教學考試系統】課件在線剪映視頻草稿生成應用這里實現的課件PPT部分…

AI升級社區便民服務:AI辦事小程序高效辦證+應急系統秒響應,告別跑腿愁住得更安心

朋友,你有沒有在社區辦過事?想給孩子辦入學證明,得先跑居委會開證明,再去街道辦事處蓋章,來回幾趟不說,要是材料沒帶全,還得重新跑;家里水管爆了,半夜聯系物業&#xff0…

el-table-draggable拖拽實現表格內容排序

1、圖片2、安裝包import ElTableDraggable from "el-table-draggable";3、代碼&#xff08;html&#xff09;<el-table-draggable:data"soloTableData"input"dragInputHandlerSolo"><el-table:data"soloTableData"row-key&qu…

Linux設備模型技術路線圖

Linux設備模型涉及的技術和知識點 1. 核心架構組件 1.1 Kobject 子系統 kobject(內核對象):Linux設備模型的基礎構建塊 kset(對象集合):kobject的容器,管理相同類型的對象 ktype(對象類型):定義kobject的行為和屬性 引用計數機制:使用kref管理對象生命周期 對象層…

面試問題詳解六:元對象系統調用槽函數

Qt 的 元對象系統&#xff08;Meta-Object System&#xff09; 是 Qt 核心機制之一&#xff0c;正是它讓 C 語言具備了類似腳本語言&#xff08;如 Python&#xff09;的反射、動態綁定、屬性系統等能力。 自定義信號與槽&#xff0c;是 Qt 元對象系統最常見、最實用的體現。&a…

Scala面試題及詳細答案100道(1-10)-- 基礎語法與數據類型

《前后端面試題》專欄集合了前后端各個知識模塊的面試題,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs,nodejs,mangoDB,SQL,Linux… 。 前后端面試題-專欄總目錄 文章目錄 一、本文面試題目錄 1. 簡述Scala與Java的主要…

http請求有哪些?

TTP請求方法常見方法&#xff1a;GET&#xff1a;獲取資源&#xff0c;參數通過URL傳遞&#xff0c;可緩存到瀏覽器本地。POST&#xff1a;提交數據&#xff0c;參數通過請求體傳遞&#xff0c;不可緩存&#xff0c;常用于創建資源。PUT&#xff1a;更新資源&#xff0c;參數通…

MAPGIS6.7地質編錄

1.編錄文件excel位于D:\mapgis67\program\section&#xff0c;文件名稱&#xff1a;ZKInfoEdit.xls2生成副本&#xff0c;復制ZKInfoEdit.xls到桌面3開始編寫 04回次4開始編寫 03編錄5開始編寫 11采樣6開始編寫 06標志面7開始編寫 10鉆孔資料8 最后總結 …

輕松掌握Chrome插件開發全流程

Chrome插件開發概述介紹Chrome插件的基本概念、核心功能和應用場景&#xff0c;包括插件與瀏覽器擴展的區別、插件的主要組成部分&#xff08;如manifest文件、后臺腳本、內容腳本等&#xff09;。開發環境搭建列出開發Chrome插件所需的工具和環境配置&#xff0c;包括Chrome瀏…

智能二維碼QR\刷IC卡\人臉AI識別梯控系統功能設計需基于模塊化架構,整合物聯網、生物識別、權限控制等技術,以下是多奧分層次的系統設計框架

一、系統架構設計硬件層主控模塊&#xff1a;32位ARM嵌入式處理器&#xff0c;支持CAN/RS485/TCP/IP協議識別終端&#xff1a;支持IC卡(CPU/國密/HID)、二維碼掃碼器(動態碼)、人臉識別(活體檢測)電梯控制單元&#xff1a;繼電器矩陣控制板&#xff0c;支持20層以上電梯按鈕控制…

Kubernetes配置與密鑰管理深度指南:ConfigMap與Secret企業級實踐

目錄 專欄介紹 作者與平臺 您將學到什么&#xff1f; 學習特色 Kubernetes配置與密鑰管理深度指南&#xff1a;ConfigMap與Secret企業級實踐 一、 配置管理&#xff1a;云原生應用的基石 1.1 配置管理的演進與挑戰 1.2 ConfigMap與Secret的設計哲學 二、 ConfigMap深度…

知行社黃劍杰:金融跨界,重塑震區救援新章

曾在紐約證券交易所敲響上市鐘聲的黃劍杰&#xff0c;這位知行社的靈魂人物&#xff0c;此次在西藏震區開啟了一場震撼人心的“跨界救援”之旅。他帶著在華爾街積累的深厚金融智慧&#xff0c;毅然投身到這場與時間賽跑、與災難較量的戰斗中&#xff0c;為傳統救災模式帶來了顛…

API模型與接口棄用指南:歷史、替代方案及開發者應對策略

API模型及接口棄用&#xff08;Deprecation&#xff09;全解 概覽 在AI與API領域&#xff0c;模型的持續迭代與技術進步推動著平臺不斷優化服務。與此同時&#xff0c;隨著更安全、更強大的新模型推出&#xff0c;舊模型與接口的棄用&#xff08;Deprecation&#xff09;成為…

python3GUI--Joy音樂播放器 在線播放器 播放器 By:PyQt5(附下載地址)

文章目錄一&#xff0e;前言二&#xff0e;項目簡介三&#xff0e;詳細模塊介紹1.主界面2.歌單廣場3.歌單詳情頁4.歌手篩選5.歌手詳情頁6.專輯詳情頁7.歌曲榜單頁8.搜索結果頁9.其他1.托盤菜單2.設置四&#xff0e;核心問題回答1.軟件UI效果實現2.為什么我做不出來這么漂亮的界…

Spring Boot整合Feign實現RPC調用,并通過Hystrix實現服務降級

feign/openfeign和dubbo是常用的微服務RPC框架&#xff0c;由于feigin內部已經集成ribbon&#xff0c;自帶了負載均衡的功能&#xff0c;當有多個同名的服務注冊到注冊中心時&#xff0c;會根據ribbon默認的負載均衡算法將請求分配到不同的服務。這篇文章就簡單介紹一下怎么使用…

Java 性能優化實戰(三):并發編程的 4 個優化維度

在多核CPU時代&#xff0c;并發編程是提升Java應用性能的關鍵手段&#xff0c;但不合理的并發設計反而會導致性能下降、死鎖等問題。本文將聚焦并發編程的四個核心優化方向&#xff0c;通過真實案例和代碼對比&#xff0c;帶你掌握既能提升性能又能保證線程安全的實戰技巧。 一…

【秋招筆試】2025.08.19百度秋招機考第一套

?? 點擊直達筆試專欄 ??《大廠筆試突圍》 ?? 春秋招筆試突圍在線OJ ?? 筆試突圍在線刷題 bishipass.com 題目一:花園路徑優化問題 1??:使用棧維護必須保留的觀景點,基于三角不等式判斷 2??:貪心策略,檢查中間點是否為"轉折點" 3??:時間復雜度 …