Please forgive me if I’m asking about this issue in the wrong place. I’ve been compiling Marlin 2.0.x from github source, and have been experimenting with different features one notable being EXTENSIBLE_UI.
I uncomment the below line within the Configuration.h
file
#define EXTENSIBLE_UI
Then I use PlatformIO to rebuild the project and everything seems to compile until it begins to link the binary, and then the build process fails.
Error Log / Stacktrace
Indexing .pio/build/megaatmega2560/libFrameworkArduino.a
Archiving .pio/build/megaatmega2560/liba44/libU8glib-HAL_ID1932.a
Indexing .pio/build/megaatmega2560/liba44/libU8glib-HAL_ID1932.a
Linking .pio/build/megaatmega2560/firmware.elf
/var/folders/f7/qpd710l91bvcz5f6lbpm1p840000gn/T//ccG5Q6SU.ltrans0.ltrans.o: In function `GcodeSuite::process_parsed_command(bool) [clone .constprop.2]':
<artificial>:(.text+0x804): undefined reference to `ExtUI::onUserConfirmRequired(char const*)'
<artificial>:(.text+0xa58): undefined reference to `ExtUI::onPrintTimerPaused()'
<artificial>:(.text+0x1fa8): undefined reference to `ExtUI::onIdle()'
/var/folders/f7/qpd710l91bvcz5f6lbpm1p840000gn/T//ccG5Q6SU.ltrans5.ltrans.o: In function `kill(char const*, char const*, bool)':
<artificial>:(.text+0x68): undefined reference to `ExtUI::onPrinterKilled(char const*, char const*)'
/var/folders/f7/qpd710l91bvcz5f6lbpm1p840000gn/T//ccG5Q6SU.ltrans5.ltrans.o: In function `idle()':
<artificial>:(.text+0x470): undefined reference to `ExtUI::onIdle()'
/var/folders/f7/qpd710l91bvcz5f6lbpm1p840000gn/T//ccG5Q6SU.ltrans6.ltrans.o: In function `main':
<artificial>:(.text.startup+0x1e8): undefined reference to `ExtUI::onStartup()'
/var/folders/f7/qpd710l91bvcz5f6lbpm1p840000gn/T//ccG5Q6SU.ltrans2.ltrans.o: In function `Stopwatch::start()':
<artificial>:(.text+0xd0): undefined reference to `ExtUI::onPrintTimerStarted()'
/var/folders/f7/qpd710l91bvcz5f6lbpm1p840000gn/T//ccG5Q6SU.ltrans2.ltrans.o: In function `Stopwatch::stop()':
<artificial>:(.text+0x12a): undefined reference to `ExtUI::onPrintTimerStopped()'
/var/folders/f7/qpd710l91bvcz5f6lbpm1p840000gn/T//ccG5Q6SU.ltrans2.ltrans.o: In function `MarlinUI::set_status(char const*, bool) [clone .part.1] [clone .lto_priv.52]':
<artificial>:(.text+0x18a): undefined reference to `ExtUI::onStatusChanged(char const*)'
/var/folders/f7/qpd710l91bvcz5f6lbpm1p840000gn/T//ccG5Q6SU.ltrans2.ltrans.o: In function `MarlinUI::set_status_P(char const*, signed char)':
<artificial>:(.text+0x1fe): undefined reference to `ExtUI::onStatusChanged(char const*)'
/var/folders/f7/qpd710l91bvcz5f6lbpm1p840000gn/T//ccG5Q6SU.ltrans2.ltrans.o: In function `ExtUI::onUserConfirmRequired_P(char const*)':
<artificial>:(.text+0x272): undefined reference to `ExtUI::onUserConfirmRequired(char const*)'
/var/folders/f7/qpd710l91bvcz5f6lbpm1p840000gn/T//ccG5Q6SU.ltrans2.ltrans.o: In function `MarlinSettings::reset()':
<artificial>:(.text+0xbc8): undefined reference to `ExtUI::onFactoryReset()'
<artificial>:(.text+0xd62): undefined reference to `ExtUI::onFactoryReset()'
/var/folders/f7/qpd710l91bvcz5f6lbpm1p840000gn/T//ccG5Q6SU.ltrans8.ltrans.o: In function `MarlinUI::status_printf_P(unsigned char, char const*, ...) [clone .constprop.17]':
<artificial>:(.text+0x54): undefined reference to `ExtUI::onStatusChanged(char const*)'
collect2: error: ld returned 1 exit status
*** [.pio/build/megaatmega2560/firmware.elf] Error 1
================================== [FAILED] Took 34.05 seconds ==================================
Environment Status Duration
----------------------- -------- ------------
megaatmega2560 FAILED 00:00:34.049
megaatmega1280 IGNORED
at90usb1286_cdc IGNORED
at90usb1286_dfu IGNORED
DUE IGNORED
DUE_USB IGNORED
DUE_debug IGNORED
LPC1768 IGNORED
LPC1769 IGNORED
melzi IGNORED
melzi_optiboot IGNORED
rambo IGNORED
sanguino_atmega644p IGNORED
sanguino_atmega1284p IGNORED
STM32F103RE IGNORED
STM32F103RC_fysetc IGNORED
STM32F103RC_bigtree IGNORED
STM32F103RC_bigtree_USB IGNORED
STM32F4 IGNORED
STM32F7 IGNORED
ARMED IGNORED
STM32F103VE_longer IGNORED
mks_robin IGNORED
mks_robin_lite IGNORED
mks_robin_mini IGNORED
mks_robin_nano IGNORED
jgaurora_a5s_a1 IGNORED
STM32F407VE_black IGNORED
BIGTREE_SKR_PRO IGNORED
BIGTREE_BTT002 IGNORED
teensy31 IGNORED
STM32F103CB_malyan IGNORED
chitu_f103 IGNORED
teensy35 IGNORED
esp32 IGNORED
fysetc_f6_13 IGNORED
linux_native IGNORED
SAMD51_grandcentral_m4 IGNORED
include_tree IGNORED
============================= 1 failed, 0 succeeded in 00:00:34.049 =============================
The terminal process terminated with exit code: 1
I have very little experience with PlatformIO and have only begun to work with the Marlin source. So if anyone has any suggestions about this issue please share.