使用QMK MSYS编译自定义键映射时提示multiple target patterns错误如何解决
问题根因与解决方案
报错根本原因
Makefile:507: *** multiple target patterns. Stop. 是典型的Make工具路径解析错误,90%以上的触发场景为以下两类:
- 执行
qmk compile时传入的参数格式不符合要求,包含Make无法识别的特殊字符(最常见为Windows路径的盘符冒号、未转义的空格、中文路径名) - QMK MSYS的工作目录或键盘固件仓库路径中存在空格、中文或其他特殊字符
具体排查修复步骤
- 首先确认
qmk compile命令的格式是否正确,不要把键盘名、键映射名混写为路径格式:
编译默认键映射的正确命令为:qmk compile -kb planck/rev6 -km default
编译自定义键映射的正确命令为(替换为你自己的键映射名):qmk compile -kb planck/rev6 -km my_custom_keymap
不要直接传入planck/rev6/keymaps/my_custom_keymap这类路径作为参数,Make会把路径中的特殊字符识别为目标分隔符触发报错。 - 检查QMK固件仓库的存放路径,确保路径全为英文、无空格、无特殊符号:
错误路径示例:C:/Users/张三 123/Documents/qmk_firmware/(包含中文、空格)
正确路径示例:C:/Users/username/Documents/qmk_firmware/ - 每次执行编译命令前可先执行
qmk config user.keyboard=planck/rev6 user.keymap=default绑定默认编译参数,之后直接执行qmk compile即可,避免参数传入错误。
JSON编译正常的原因
QMK的JSON编译逻辑会自动解析配置文件内的键盘、键映射参数,自动转义处理路径,不会触发Make的路径解析规则,所以可以正常完成编译。
内容的提问来源于stack exchange,提问作者TheNomad
相关产品推荐
相关产品推荐

