Windows 11下QMK固件编译WMIC缺失:两条路子快速修好指南
【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware
你在 Windows 11 上编译 QMK 固件时,终端突然甩出'wmic' 不是内部或外部命令,先别慌:不是你敲错了,是系统缺了组件。QMK 固件是给 Atmel AVR 和 Arm USB 控制器键盘用的开源固件,编译流程里会查一次硬件信息,所以卡在这一步很正常。两分钟就能修好,下面两条路子你挑一条。
TL;DR
管理员权限打开 PowerShell,跑一行dism /online /enable-feature /featurename:WMIC,重启,编译就通了;嫌动系统麻烦,就改 Makefile 一行,同样能过。
报错长什么样
make 跑到一半,命令行只甩给你一行:
'wmic' 不是内部或外部命令,也不是可运行的程序或批处理文件。然后编译直接中断。原文就这一句,先记下来备用。
为什么 Windows 11 会缺 WMIC
WMIC 是 Windows 自带的硬件信息查询命令行。微软在近几年度的 Windows 11 版本里逐步拆掉它,新装的机器上 wmic 可能压根不存在。而 Makefile(QMK 的编译入口脚本)过去会调 wmic 查键盘设备信息,找不到组件,你看到的那句报错就冒出来了。
路径A:一条命令启用 WMIC 组件 ✅
这步是跟系统说"把缺的组件装回来"。以管理员身份打开 PowerShell,跑:
dism /online /enable-feature /featurename:WMIC装完重启机器,再敲下面这条确认组件真的生效:
wmic os get caption能打印出系统版本,就成了。
路径B:把 Makefile 的 WMIC 换成 PowerShell 写法 🔧
如果机器动不了系统设置,就改脚本。打开项目根目录的 Makefile,找到 wmic 查键盘信息那一行,换成 PowerShell(Windows 10/11 自带的命令行)等价写法。原行:
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")存盘即可,别的都别动。
编译验证三步
第一步清掉旧的构建缓存,第二步重新编译,第三步确认成品落在哪。
make clean make planck/rev6:default编译成功后,固件文件在.build目录里等着被刷进键盘。若冒出别的错,翻一下 docs/faq_build.md 再动手。
防复发提醒 ⚠️
QMK 团队在新代码里正逐步换掉 WMIC 调用,你隔三差五跑一下git pull origin master保持同步,这类坑以后基本不会再踩;再遇到类似报错,瞄一眼 docs/breaking_changes.md,看系统要求有没有变,省得重新排查一遍。
【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考