You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WOBKEY Rainy75 Lite键盘QMK编译报错求助

问题:QMK编译WOBKEY Rainy75 Lite固件时汇编器错误

我正在为WOBKEY Rainy75 Lite键盘编写QMK固件,添加西班牙语带重音字符支持。该键盘支持QMK但无现成配置,我从零实现了keymap.c、keyboard.json、layout.h和config.h,但执行编译命令qmk compile -kb wobkey_rainy75 -km default时失败,报错显示汇编器试图编译C代码,具体错误如下:

Generating: .build/obj_wobkey_rainy75_default/src/info_config.h                                     [OK]
Generating: .build/obj_wobkey_rainy75_default/src/default_keyboard.h                                [OK]
Assembling: platforms/avr/xprintf.S                                                                 [ERRORS]
 |
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h: Assembler messages:
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:125: Error: unknown opcode `typedef'
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:126: Error: unknown opcode `typedef'
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:127: Error: unknown opcode `typedef'
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:128: Error: unknown opcode `typedef'
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:129: Error: unknown opcode `typedef'
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:130: Error: unknown opcode `typedef'
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:132: Error: unknown opcode `typedef'
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:133: Error: unknown opcode `typedef'
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:146: Error: unknown opcode `typedef'
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:151: Error: unknown opcode `typedef'
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:163: Error: unknown opcode `typedef'
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:168: Error: unknown opcode `typedef'
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:173: Error: unknown opcode `typedef'
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:178: Error: unknown opcode `typedef'
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:183: Error: unknown opcode `typedef'
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:188: Error: unknown opcode `typedef'
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:196: Error: unknown opcode `typedef'
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:203: Error: unknown opcode `typedef'
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:217: Error: unknown opcode `typedef'
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:222: Error: unknown opcode `typedef'
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:227: Error: unknown opcode `typedef'
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:232: Error: unknown opcode `typedef'
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:237: Error: unknown opcode `typedef'
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:242: Error: unknown opcode `typedef'
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:250: Error: unknown opcode `typedef'
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:257: Error: unknown opcode `typedef'
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:277: Error: unknown opcode `typedef'
 | C:/QMK_MSYS/mingw64/avr/include/stdint.h:282: Error: unknown opcode `typedef'
 | platforms/timer.h:37: Error: unknown opcode `extern'
 | platforms/timer.h:39: Error: unknown opcode `void'
 | platforms/timer.h:40: Error: unknown opcode `void'
 | platforms/timer.h:41: Error: unknown opcode `void'
 | platforms/timer.h:42: Error: unknown opcode `void'
 | platforms/timer.h:43: Error: unknown opcode `uint16_t'
 | platforms/timer.h:44: Error: unknown opcode `uint32_t'
 | platforms/timer.h:45: Error: unknown opcode `uint16_t'
 | platforms/timer.h:46: Error: unknown opcode `uint32_t'
 | platforms/timer.h:56: Error: unknown opcode `typedef'
 | platforms/timer.h:57: Error: unknown opcode `fast_timer'
 | platforms/timer.h:58: Error: unknown opcode `return'
 | platforms/timer.h:59: Error: junk at end of line, first unrecognized character is `}'
 | platforms/timer.h:60: Error: unknown opcode `fast_timer'
 | platforms/timer.h:61: Error: unknown opcode `return'
 | platforms/timer.h:62: Error: junk at end of line, first unrecognized character is `}'
 | quantum/keyboard.h:30: Error: unknown opcode `typedef'
 | quantum/keyboard.h:31: Error: unknown opcode `uint8_t'
 | quantum/keyboard.h:32: Error: unknown opcode `uint8_t'
 | quantum/keyboard.h:33: Error: junk at end of line, first unrecognized character is `}'
 | quantum/keyboard.h:35: Error: unknown opcode `typedef'
 | quantum/keyboard.h:38: Error: unknown opcode `typedef'
 | quantum/keyboard.h:39: Error: unknown opcode `keypos_t'
 | quantum/keyboard.h:40: Error: unknown opcode `uint16_t'
 | quantum/keyboard.h:41: Error: unknown opcode `keyevent_t'
 | quantum/keyboard.h:42: Error: unknown opcode `_bool'
 | quantum/keyboard.h:43: Error: junk at end of line, first unrecognized character is `}'
 | quantum/keyboard.h:54: Error: unknown opcode `static'
 | quantum/keyboard.h:55: Error: unknown opcode `return'
 | quantum/keyboard.h:56: Error: junk at end of line, first unrecognized character is `}'
 | quantum/keyboard.h:57: Error: unknown opcode `static'
 | quantum/keyboard.h:58: Error: unknown opcode `return'
 | quantum/keyboard.h:59: Error: junk at end of line, first unrecognized character is `}'
 | quantum/keyboard.h:60: Error: unknown opcode `static'
 | quantum/keyboard.h:61: Error: unknown opcode `return'
 | quantum/keyboard.h:62: Error: junk at end of line, first unrecognized character is `}'
 | quantum/keyboard.h:63: Error: unknown opcode `static'
 | quantum/keyboard.h:64: Error: unknown opcode `return'
 | quantum/keyboard.h:65: Error: junk at end of line, first unrecognized character is `}'
 | quantum/keyboard.h:66: Error: unknown opcode `static'
 | quantum/keyboard.h:67: Error: unknown opcode `return'
 | quantum/keyboard.h:68: Error: junk at end of line, first unrecognized character is `}'
 | quantum/keyboard.h:69: Error: unknown opcode `static'
 | quantum/keyboard.h:70: Error: unknown opcode `return'
 | quantum/keyboard.h:71: Error: junk at end of line, first unrecognized character is `}'
 | quantum/keyboard.h:107: Error: unknown opcode `void'
 | quantum/keyboard.h:109: Error: unknown opcode `void'
 | quantum/keyboard.h:111: Error: unknown opcode `void'
 | quantum/keyboard.h:113: Error: unknown opcode `_bool'
 | quantum/keyboard.h:115: Error: unknown opcode `_bool'
 | quantum/keyboard.h:117: Error: unknown opcode `void'
 | quantum/keyboard.h:118: Error: unknown opcode `void'
 | quantum/keyboard.h:119: Error: unknown opcode `void'
 | quantum/keyboard.h:120: Error: unknown opcode `void'
 | quantum/keyboard.h:122: Error: unknown opcode `void'
 | quantum/keyboard.h:123: Error: unknown opcode `void'
 | quantum/keyboard.h:124: Error: unknown opcode `void'
 | quantum/keyboard.h:126: Error: unknown opcode `uint32_t'
 | quantum/keyboard.h:127: Error: unknown opcode `uint32_t'
 | quantum/keyboard.h:129: Error: unknown opcode `uint32_t'
 | quantum/keyboard.h:130: Error: unknown opcode `uint32_t'
 | quantum/keyboard.h:132: Error: unknown opcode `uint32_t'
 | quantum/keyboard.h:133: Error: unknown opcode `uint32_t'
 | quantum/keyboard.h:135: Error: unknown opcode `uint32_t'
 | quantum/keyboard.h:136: Error: unknown opcode `uint32_t'
 | quantum/keyboard.h:138: Error: unknown opcode `void'
 | quantum/keyboard.h:140: Error: unknown opcode `uint32_t'
 | quantum/keymap_common.h:10: Error: unknown opcode `uint16_t'
 | ./keyboards/wobkey_rainy75/keymaps/default/config.h:10: Error: unknown opcode `enum'
 | ./keyboards/wobkey_rainy75/keymaps/default/config.h:11: Error: unknown opcode `base_layer'
 | ./keyboards/wobkey_rainy75/keymaps/default/config.h:12: Error: unknown opcode `function_l'
 | ./keyboards/wobkey_rainy75/keymaps/default/config.h:13: Error: junk at end of line, first unrecognized character is `}'
 |
make: *** [builddefs/common_rules.mk:361: .build/obj_wobkey_rainy75_default/platforms/avr/xprintf.o] Error 1
解决方案

这类错误核心是汇编器错误尝试编译C头文件,通常由键盘配置的编译规则或平台定义错误导致,可按以下步骤修复:

  • 检查keyboard.json平台配置
    确认"processor"字段为正确的AVR型号(如atmega32u4),"platform"字段设置为"avr",错误的平台/处理器会触发错误的编译工具链调用。

  • 验证rules.mk文件
    若键盘目录无rules.mk,创建并添加基础规则:

    MCU = atmega32u4
    BOOTLOADER = caterina
    # 补充键盘矩阵等必要配置
    

    确保未错误将C文件标记为汇编文件,或修改默认编译后缀规则。

  • 检查自定义头文件引用
    确认config.h和layout.h未被汇编上下文(如.S文件)错误引用,且keymap.c中的头文件引用无语法错误,避免预处理器异常。

  • 清理构建缓存
    执行以下命令清除旧构建文件后重新编译:

    qmk clean
    qmk compile -kb wobkey_rainy75 -km default
    
  • 对比官方模板修正配置
    找同平台(AVR)的官方QMK键盘配置(如planck),对比其keyboard.json、rules.mk和头文件结构,修正自身配置的差异。


内容的提问来源于stack exchange,提问作者Sam Kelemen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 22:13:09