Hi everyone,
I'm currently migrating a firmware project from version 3.2.8.1 to 3.2.9.2, and I’m encountering a linker error during the build process.
Environment:
GNU Arm Embedded Toolchain 10.3.1 (2021.10)
My project directory: D:\Itsokey\...
D:\Itsokey\...
Toolchain path: C:\Program Files (x86)\GNU Arm Embedded Toolchain\...
C:\Program Files (x86)\GNU Arm Embedded Toolchain\...
The static library liblmac.mod.a was provided by the vendor — I didn’t compile it myself.
liblmac.mod.a
Error message:
Building target: da16600_aws.elf c:/program files (x86)/gnu arm embedded toolchain/10 2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: D:/Itsokey/itsokey-wifi-firmware/apps/AWS/get_started_da16600/projects/da16600/../../../../../library\liblmac.mod.a(dbg_print.o): in function `dbg_rtt_vprintf': C:/Users/Thinkpalm/Desktop/mar04/da16200_freertos/core/wifistack/lmac/macsw/modules/dbg/src/dbg_print.c:77: undefined reference to `SEGGER_RTT_SetTerminal' c:/program files (x86)/gnu arm embedded toolchain/10 2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: C:/Users/Thinkpalm/Desktop/mar04/da16200_freertos/core/wifistack/lmac/macsw/modules/dbg/src/dbg_print.c:78: undefined reference to `SEGGER_RTT_printf' c:/program files (x86)/gnu arm embedded toolchain/10 2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: C:/Users/Thinkpalm/Desktop/mar04/da16200_freertos/core/wifistack/lmac/macsw/modules/dbg/src/dbg_print.c:79: undefined reference to `SEGGER_RTT_SetTerminal' collect2.exe: error: ld returned 1 exit status make[1]: *** [makefile:257: da16600_aws.elf] Error 1 make: *** [makefile:249: all] Error 2 "make -r all" terminated with exit code 2. Build might be incomplete.
It looks like the vendor’s library is referencing SEGGER RTT functions, but they aren’t available in my build.
Why is this error happening, and how should I resolve it?
Thanks in advance for any insights!