Search code examples
qmk-firmware

QMK compile implicit declaration erros


I have a problem while compiling my keymaps for a Corne keyboard. I'm currently using Ubuntu and here is the console log:

Compiling: quantum/keymap_introspection.c                                                          In file included from ./keyboards/crkbd/keymaps/CrisCL20/keymap.c:19:0,
                 from quantum/keymap_introspection.c:5:
./keyboards/crkbd/keymaps/CrisCL20/keymap.c:26:7: error: implicit declaration of function ‘SFT_L’ [-Werror=implicit-function-declaration]
       SFT_L(KC_ESC),    KC_A,    KC_S,    KC_D,  KC_F,KC_G,                         KC_H,    KC_J,    KC_K,    KC_L, KC_SCLN, KC_QUOT,
       ^
./.build/obj_crkbd_rev1_CrisCL20/src/default_keyboard.h:44:4: note: in definition of macro ‘LAYOUT_split_3x6_3’
   {k1A, k1B, k1C, k1D, k1E, k1F}, \
    ^
./keyboards/crkbd/keymaps/CrisCL20/keymap.c:26:7: error: initializer element is not constant
       SFT_L(KC_ESC),    KC_A,    KC_S,    KC_D,  KC_F,KC_G,                         KC_H,    KC_J,    KC_K,    KC_L, KC_SCLN, KC_QUOT,
       ^
./.build/obj_crkbd_rev1_CrisCL20/src/default_keyboard.h:44:4: note: in definition of macro ‘LAYOUT_split_3x6_3’
   {k1A, k1B, k1C, k1D, k1E, k1F}, \
    ^
./keyboards/crkbd/keymaps/CrisCL20/keymap.c:26:7: note: (near initialization for ‘keymaps[0][1][0]’)
       SFT_L(KC_ESC),    KC_A,    KC_S,    KC_D,  KC_F,KC_G,                         KC_H,    KC_J,    KC_K,    KC_L, KC_SCLN, KC_QUOT,
       ^
./.build/obj_crkbd_rev1_CrisCL20/src/default_keyboard.h:44:4: note: in definition of macro ‘LAYOUT_split_3x6_3’
   {k1A, k1B, k1C, k1D, k1E, k1F}, \
    ^
cc1: all warnings being treated as errors
 [ERRORS]

I have not tried much since there is not much information out there about this specific issue.

How can I fix it?


Solution

  • Instead of using the SFT_L(kc) alias, use the original name LSFT_T(kc).