Build error(s): implicit declaration of function 'KEYMAP' / initializer element is not constant
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]')