Hello !
I have a weird problem. I try to compil a code with huge library for ESP8266 Node Mcu 1.0. The library is UML-RT and i have à weird undifine reference.
/home/breizh/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.0-newlib4.0.0-gnu23-48f7b08/bin/xtensa-lx106-elf-gcc -fno-exceptions -Wl,-Map -Wl,/tmp/arduino_build_655136/TopMain.ino.map -g -w -Os -nostdlib -Wl,--no-check-sections -u app_entry -u _printf_float -u _scanf_float -Wl,-static -L/home/breizh/.arduino15/packages/esp8266/hardware/esp8266/3.0.0/tools/sdk/lib -L/home/breizh/.arduino15/packages/esp8266/hardware/esp8266/3.0.0/tools/sdk/lib/NONOSDK22x_190703 -L/tmp/arduino_build_655136 -L/home/breizh/.arduino15/packages/esp8266/hardware/esp8266/3.0.0/tools/sdk/libc/xtensa-lx106-elf/lib -Tlocal.eagle.flash.ld -Wl,--gc-sections -Wl,-wrap,system_restart_local -Wl,-wrap,spi_flash_read -o /tmp/arduino_build_655136/TopMain.ino.elf -Wl,--start-group /tmp/arduino_build_655136/sketch/Controller.cpp.o /tmp/arduino_build_655136/sketch/OnOff.cpp.o /tmp/arduino_build_655136/sketch/Top.cpp.o /tmp/arduino_build_655136/sketch/TopControllers.cpp.o /tmp/arduino_build_655136/sketch/TopMain.ino.cpp.o /tmp/arduino_build_655136/sketch/interact.cpp.o /tmp/arduino_build_655136/libraries/umlrt/basedebug.cpp.o /tmp/arduino_build_655136/libraries/umlrt/basefatal.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtbasicthread.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtcapsule.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtcapsuleid.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtcapsuletocontrollermap.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtcommsport.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtcontroller.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtframeprotocol.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtframeservice.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtgetopt.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrthashmap.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtinoutsignal.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtinsignal.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtlogprotocol.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtmain.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtmainloop.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtmaintargetshutdown.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtmaintargetstartup.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtmessage.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtmessagepool.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtmessagequeue.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtobjectclass.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtoutsignal.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtpool.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtprioritymessagequeue.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtprotocol.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtqueue.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtrtsinterfaceumlrt.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtsignal.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtsignalelement.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrtsignalelementpool.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrttimerid.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrttimerpool.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrttimerprotocol.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrttimerqueue.cpp.o /tmp/arduino_build_655136/libraries/umlrt/umlrttimespec.cpp.o /tmp/arduino_cache_443090/core/core_f7dedc75cf0dfed6060e9b5e6a5cc6e9.a -lhal -lphy -lpp -lnet80211 -llwip2-536-feat -lwpa -lcrypto -lmain -lwps -lbearssl -lespnow -lsmartconfig -lairkiss -lwpa2 -lstdc++ -lm -lc -lgcc -Wl,--end-group -L/tmp/arduino_build_655136
/home/breizh/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.0-newlib4.0.0-gnu23-48f7b08/bin/../lib/gcc/xtensa-lx106-elf/10.2.0/../../../../xtensa-lx106-elf/bin/ld: address 0x4000bb18 of /tmp/arduino_build_655136/TopMain.ino.elf section `.bss' is not within region `dram0_0_seg'
/home/breizh/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.0-newlib4.0.0-gnu23-48f7b08/bin/../lib/gcc/xtensa-lx106-elf/10.2.0/../../../../xtensa-lx106-elf/bin/ld: address 0x4000bb18 of /tmp/arduino_build_655136/TopMain.ino.elf section `.bss' is not within region `dram0_0_seg'
/home/breizh/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.0-newlib4.0.0-gnu23-48f7b08/bin/../lib/gcc/xtensa-lx106-elf/10.2.0/../../../../xtensa-lx106-elf/bin/ld: /tmp/arduino_build_655136/libraries/umlrt/basedebug.cpp.o:(.text._ZN4base7bdguardC2EPP14UMLRTSemaphore+0x0): undefined reference to `_ZN14UMLRTSemaphoreC1Ei'
/home/breizh/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.0-newlib4.0.0-gnu23-48f7b08/bin/../lib/gcc/xtensa-lx106-elf/10.2.0/../../../../xtensa-lx106-elf/bin/ld: /tmp/arduino_build_655136/libraries/umlrt/basedebug.cpp.o:(.text._ZN4base7bdguardC2EPP14UMLRTSemaphore+0x4): undefined reference to `_ZN14UMLRTSemaphore4waitEv'
/home/breizh/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.0-newlib4.0.0-gnu23-48f7b08/bin/../lib/gcc/xtensa-lx106-elf/10.2.0/../../../../xtensa-lx106-elf/bin/ld: /tmp/arduino_build_655136/libraries/umlrt/basedebug.cpp.o: in function `_ZN4base7bdguardC2EPP14UMLRTSemaphore':
/home/breizh/Arduino/libraries/umlrt/src/basedebug.cpp:116: undefined reference to `_ZN14UMLRTSemaphoreC1Ei'
/home/breizh/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.0-newlib4.0.0-gnu23-48f7b08/bin/../lib/gcc/xtensa-lx106-elf/10.2.0/../../../../xtensa-lx106-elf/bin/ld: /home/breizh/Arduino/libraries/umlrt/src/basedebug.cpp:116: undefined reference to `_ZN14UMLRTSemaphore4waitEv'
/home/breizh/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.0-newlib4.0.0-gnu23-48f7b08/bin/../lib/gcc/xtensa-lx106-elf/10.2.0/../../../../xtensa-lx106-elf/bin/ld: /tmp/arduino_build_655136/libraries/umlrt/basedebug.cpp.o: in function `_ZN4base12debugLogDataElPhj':
/home/breizh/Arduino/libraries/umlrt/src/basedebug.cpp:406: undefined reference to `_ZN14UMLRTSemaphore4postEv'
/home/breizh/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.0-newlib4.0.0-gnu23-48f7b08/bin/../lib/gcc/xtensa-lx106-elf/10.2.0/../../../../xtensa-lx106-elf/bin/ld: /tmp/arduino_build_655136/libraries/umlrt/basedebug.cpp.o: in function `_ZN4base5swerrEPKciS1_S1_z':
/home/breizh/Arduino/libraries/umlrt/src/basedebug.cpp:491: undefined reference to `_ZN14UMLRTSemaphore4postEv'
/home/breizh/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.0-newlib4.0.0-gnu23-48f7b08/bin/../lib/gcc/xtensa-lx106-elf/10.2.0/../../../../xtensa-lx106-elf/bin/ld: /tmp/arduino_build_655136/libraries/umlrt/umlrtcontroller.cpp.o:(.text._ZN15UMLRTController14enqueueDestroyEP9UMLRTSlotb+0xc): undefined reference to `_ZN14UMLRTSemaphoreD1Ev'
/home/breizh/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.0-newlib4.0.0-gnu23-48f7b08/bin/../lib/gcc/xtensa-lx106-elf/10.2.0/../../../../xtensa-lx106-elf/bin/ld: /tmp/arduino_build_655136/libraries/umlrt/umlrtcontroller.cpp.o: in function `_ZN15UMLRTController14enqueueDestroyEP9UMLRTSlotb':
/home/breizh/Arduino/libraries/umlrt/src/umlrtcontroller.cpp:326: undefined reference to `_ZN14UMLRTSemaphoreC1Ei'
/home/breizh/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.0-newlib4.0.0-gnu23-48f7b08/bin/../lib/gcc/xtensa-lx106-elf/10.2.0/../../../../xtensa-lx106-elf/bin/ld: /home/breizh/Arduino/libraries/umlrt/src/umlrtcontroller.cpp:339: undefined reference to `_ZN14UMLRTSemaphore4waitEv'
/home/breizh/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.0-newlib4.0.0-gnu23-48f7b08/bin/../lib/gcc/xtensa-lx106-elf/10.2.0/../../../../xtensa-lx106-elf/bin/ld: /home/breizh/Arduino/libraries/umlrt/src/umlrtcontroller.cpp:346: undefined reference to `_ZN14UMLRTSemaphoreD1Ev'
/home/breizh/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.0-newlib4.0.0-gnu23-48f7b08/bin/../lib/gcc/xtensa-lx106-elf/10.2.0/../../../../xtensa-lx106-elf/bin/ld: /tmp/arduino_build_655136/libraries/umlrt/umlrtcontroller.cpp.o: in function `_ZN15UMLRTController26debugOutputSlotContainmentEPK9UMLRTSlotj':
/home/breizh/Arduino/libraries/umlrt/src/umlrtcontroller.cpp:1045: undefined reference to `_ZN13UMLRTTimespec8getclockEPS_'
/home/breizh/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.0-newlib4.0.0-gnu23-48f7b08/bin/../lib/gcc/xtensa-lx106-elf/10.2.0/../../../../xtensa-lx106-elf/bin/ld: /tmp/arduino_build_655136/libraries/umlrt/umlrtcontroller.cpp.o: in function `_ZN15UMLRTController16debugOutputSlotsEPK9UMLRTSlot':
/home/breizh/Arduino/libraries/umlrt/src/umlrtcontroller.cpp:1058: undefined reference to `_ZN13UMLRTTimespec8getclockEPS_'
/home/breizh/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.0-newlib4.0.0-gnu23-48f7b08/bin/../lib/gcc/xtensa-lx106-elf/10.2.0/../../../../xtensa-lx106-elf/bin/ld: /tmp/arduino_build_655136/libraries/umlrt/umlrtcontroller.cpp.o: in function `_ZN15UMLRTController14executeCommandEP12UMLRTMessage':
/home/breizh/Arduino/libraries/umlrt/src/umlrtcontroller.cpp:449: undefined reference to `_ZN14UMLRTSemaphore4postEv'
/home/breizh/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.0-newlib4.0.0-gnu23-48f7b08/bin/../lib/gcc/xtensa-lx106-elf/10.2.0/../../../../xtensa-lx106-elf/bin/ld: /tmp/arduino_build_655136/libraries/umlrt/umlrttimerqueue.cpp.o: in function `_ZNK15UMLRTTimerQueue13timeRemainingEv':
/home/breizh/Arduino/libraries/umlrt/src/umlrttimerqueue.cpp:197: undefined reference to `_ZN13UMLRTTimespec8getclockEPS_'
/home/breizh/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.0-newlib4.0.0-gnu23-48f7b08/bin/../lib/gcc/xtensa-lx106-elf/10.2.0/../../../../xtensa-lx106-elf/bin/ld: /tmp/arduino_build_655136/libraries/umlrt/umlrttimespec.cpp.o: in function `_ZN13UMLRTTimespecC2Ev':
/home/breizh/Arduino/libraries/umlrt/src/umlrttimespec.cpp:26: undefined reference to `_ZN13UMLRTTimespec8getclockEPS_'
If i take this line
/home/breizh/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.0-newlib4.0.0-gnu23-48f7b08/bin/../lib/gcc/xtensa-lx106-elf/10.2.0/../../../../xtensa-lx106-elf/bin/ld: /tmp/arduino_build_655136/libraries/umlrt/umlrtcontroller.cpp.o: in function `_ZN15UMLRTController14executeCommandEP12UMLRTMessage':
We see "_ZN15UMLRTController14executeCommandEP12UMLRTMessage" and if I decomposed we see "ZN15 UMLRTController 14 executeCommand EP12 UMLRTMessage" ans i have this fonction on umlrtcontroller.h void executeCommand ( UMLRTMessage * msg ); But this fonction if define on umlrtcontroller.cpp with good name and good parameters etc ...
void UMLRTController::executeCommand ( UMLRTMessage * msg )
{
// my code
}
I don't know why i have undifine reference like this. If anyone has an explanation that would be really great!
Tanks you in advance ^^