添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement . We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account Build error(s): implicit declaration of function 'KEYMAP' / initializer element is not constant #3251 Build error(s): implicit declaration of function 'KEYMAP' / initializer element is not constant #3251 henrebotha opened this issue Jun 28, 2018 · 8 comments
QMK Firmware 0.6.49
WARNING:
 Some git sub-modules are out of date or modified, please consider runnning:
 make git-submodule
 You can ignore this warning if you are not compiling any ChibiOS keyboards,
 or if you have modified the ChibiOS libraries yourself.
Making ergodox_ez with keymap henrebotha
avr-gcc (GCC) 8.1.0
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Compiling: keyboards/ergodox_ez/twimaster.c                                                         [OK]
Compiling: keyboards/ergodox_ez/matrix.c                                                            [OK]
Compiling: keyboards/ergodox_ez/ergodox_ez.c                                                        [OK]
Compiling: keyboards/ergodox_ez/keymaps/henrebotha/keymap.c                                        keyboards/ergodox_ez/keymaps/henrebotha/keymap.c:33:18: error: implicit declaration of function 'KEYMAP'; did you mean 'KEYMAP_H'? [-Werror=implicit-function-declaration]
   [LAYER_HOME] = KEYMAP(
                  ^~~~~~
                  KEYMAP_H
keyboards/ergodox_ez/keymaps/henrebotha/keymap.c:33:18: error: initializer element is not constant
keyboards/ergodox_ez/keymaps/henrebotha/keymap.c:33:18: note: (near initialization for 'keymaps[0][0][0]')
> ...snip... <

It's been a while since I've built my firmware, so I don't know whether something fundamental has changed in QMK in the meantime. My keymap is a fork of the Ergodox EZ default keymap.

The issue is that avr-gcc 8.1.0 isn't fully compatible with our build environment.
To fix this issue, you'll need to revert the version. To do so, run:

brew install [email protected]
brew pin osx-cross/avr/avr-gcc

This will revert to a working version, and prevent it from updating.

Hang on... This doesn't work, I get the same issues with 7.3.0.

QMK Firmware 0.6.49
WARNING:
 Some git sub-modules are out of date or modified, please consider runnning:
 make git-submodule
 You can ignore this warning if you are not compiling any ChibiOS keyboards,
 or if you have modified the ChibiOS libraries yourself.
Making ergodox_ez with keymap henrebotha
avr-gcc (GCC) 7.3.0
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Compiling: keyboards/ergodox_ez/twimaster.c                                                         [OK]
Compiling: keyboards/ergodox_ez/matrix.c                                                            [OK]
Compiling: keyboards/ergodox_ez/ergodox_ez.c                                                        [OK]
Compiling: keyboards/ergodox_ez/keymaps/henrebotha/keymap.c                                        keyboards/ergodox_ez/keymaps/henrebotha/keymap.c:33:18: error: implicit declaration of function 'KEYMAP'; did you mean 'KEYMAP_H'? [-Werror=implicit-function-declaration]
   [LAYER_HOME] = KEYMAP(
                  ^~~~~~
                  KEYMAP_H
keyboards/ergodox_ez/keymaps/henrebotha/keymap.c:33:18: error: initializer element is not constant
keyboards/ergodox_ez/keymaps/henrebotha/keymap.c:33:18: note: (near initialization for 'keymaps[0][0][0]')