如何解决 Windows 11 下 QMK 固件编译失败:WMIC 缺失问题快速完整指南
【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware
TL;DR 速览
在 Windows 11 上编译QMK 固件(qmk_firmware,一个开源键盘固件项目)时,你可能因为WMIC 缺失而构建失败。解决它有两条路:把系统组件装回来,或者改构建脚本去掉依赖。建议先走路线①——一条命令加一次重启,马上能通。
10 秒自检:是不是 wmic 报错把你卡住了?
跑make编译时,如果终端吐出了下面这行:
'wmic' 不是内部或外部命令,也不是可运行的程序或批处理文件。
那基本就是它了。这个报错和你的键盘型号、编译工具链都没关系,纯粹是系统缺了工具。可以直接跳到下面任一路线。
一分钟背景:为什么 QMK 编译会用到 wmic
WMIC 是 Windows 的老牌系统信息查询工具,微软在新版 Windows 11 里把它移除了。QMK 这边,构建脚本在 Makefile 里用wmic查询键盘设备信息,工具一消失,make 拿不到查询结果,直接中断。你的代码没问题,环境也没问题,只是系统悄悄收走了一个零件。
路线①:三步恢复 WMIC 组件(推荐)
以管理员身份打开 PowerShell(Win + X,选“终端(管理员)”)。
执行下面命令,启用 WMIC 组件:
dism /online /enable-feature /featurename:WMIC重启系统。
验证是否装好,能打印出系统名就齐活了:
wmic os get caption
路线②:替换 Makefile 里的 wmic 为 PowerShell(长期方案)🔧
打开项目根目录的 Makefile,找到含WMIC的代码块,按下面改:
# 改动前 WMIC_OUTPUT := $(shell wmic path win32_pnpentity get caption | findstr /i "keyboard") # 改动后 WMIC_OUTPUT := $(shell powershell -Command "Get-CimInstance -ClassName Win32_PnPEntity | Where-Object Caption -Match 'keyboard' | Select-Object -ExpandProperty Caption")为什么这条更稳:PowerShell 是 Windows 11 的第一公民,不在任何移除清单上,系统下次升级也不会再让你踩一次同一个坑。
验证清单
- 执行
make clean,清掉构建缓存 - 重新编译示例固件:
make planck/rev6:default - 确认
.build目录里出现了新的固件文件
资源索引与后续
- 快速上手指南:第一次编译 QMK 固件的路径与前置准备
- 构建问题排查 FAQ:遇到其它 make 报错时先翻这里
- QMK CLI 命令手册:常用构建命令语法速查
- 破坏性变更记录:跟进各版本对系统要求的变动
QMK 团队正在逐步用 PowerShell 命令替换构建流程里剩下的 wmic 调用,你保持git pull origin master同步最新代码,这个问题迟早会自己消失。
【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考