Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
6 years, 7 months ago.
Compile error of exported program in LPC Expresso:LPC1768
Board:LPC1768
mbed lib:161(121,88...)
Tool:LPC Xpresso 8.2.2.650
When I export mbed_blinky and compile it, an error occurs.
Error message.
\mbed\TARGET_LPC1768\TOOLCHAIN_GCC_ARM\LPC1768.ld:2: ignoring invalid character `#' in expression
collect2.exe: error: ld returned 1 exit status
Changing mbed.lib to 121, 88 etc. as a test has no effect.
Does anyone know the countermeasure method?
1 Answer
6 years, 7 months ago.
Hello Koyama-san,
This information might help.
Best regards,
Zoltan
Hello Zoltan
Thank you for your answer.
I changed lpc1768.ld with reference to the following URL.
https://os.mbed.com/questions/79943/Linking-error-with-CoIDE/
However, a new error was output.
On the IDE, "undefined reference to` memset 'is displayed in the following places.
/mbed/drivers/DigitalOut.h Line 54
DigitalOut.h
DigitalOut(PinName pin) : gpio() { // <- Error "undefined reference to` memset " // No lock needed in the constructor gpio_init_out(&gpio, pin); }
Error Message
D:/_NXP/_WorkSpace822/mbed_blinky/mbed/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/startup_LPC17xx.o: In function `Reset_Handler': /home/jenkins/mbed_jenkins_node2/workspace/bm_wrap/1673/mbed-os/targets/TARGET_NXP/TARGET_LPC176X/device/TOOLCHAIN_GCC_ARM/startup_LPC17xx.S:150: undefined reference to `_start' ./main.o: In function `mbed::DigitalOut::DigitalOut(PinName)': D:\_NXP\_WorkSpace822\mbed_blinky\mbed/drivers/DigitalOut.h:53: undefined reference to `memset' D:/_NXP/_WorkSpace822/mbed_blinky/mbed/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/mbed_board.o: In function `mbed_error_vfprintf': /home/jenkins/mbed_jenkins_node2/workspace/bm_wrap/1673/mbed-os/platform/mbed_board.c:64: undefined reference to `vsnprintf' D:/_NXP/_WorkSpace822/mbed_blinky/mbed/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/serial_api.o: In function `serial_baud': /home/jenkins/mbed_jenkins_node2/workspace/bm_wrap/1673/mbed-os/targets/TARGET_NXP/TARGET_LPC176X/serial_api.c:218: undefined reference to `abs' D:/_NXP/_WorkSpace822/mbed_blinky/mbed/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/serial_api.o: In function `serial_init': /home/jenkins/mbed_jenkins_node2/workspace/bm_wrap/1673/mbed-os/targets/TARGET_NXP/TARGET_LPC176X/serial_api.c:144: undefined reference to `memcpy' D:\_NXP\_WorkSpace822\mbed_blinky\mbed\TARGET_LPC1768\TOOLCHAIN_GCC_ARM\libmbed.a(mbed_error.o): In function `error': /home/jenkins/mbed_jenkins_node2/workspace/bm_wrap/1673/mbed-os/platform/mbed_error.c:42: undefined reference to `exit' D:\_NXP\_WorkSpace822\mbed_blinky\mbed\TARGET_LPC1768\TOOLCHAIN_GCC_ARM\libmbed.a(mbed_ticker_api.o): In function `update_present_time': /home/jenkins/mbed_jenkins_node2/workspace/bm_wrap/1673/mbed-os/hal/mbed_ticker_api.c:144: undefined reference to `__aeabi_uldivmod' /home/jenkins/mbed_jenkins_node2/workspace/bm_wrap/1673/mbed-os/hal/mbed_ticker_api.c:147: undefined reference to `__aeabi_uldivmod' D:\_NXP\_WorkSpace822\mbed_blinky\mbed\TARGET_LPC1768\TOOLCHAIN_GCC_ARM\libmbed.a(mbed_ticker_api.o): In function `compute_tick': /home/jenkins/mbed_jenkins_node2/workspace/bm_wrap/1673/mbed-os/hal/mbed_ticker_api.c:187: undefined reference to `__aeabi_uldivmod' D:\_NXP\_WorkSpace822\mbed_blinky\mbed\TARGET_LPC1768\TOOLCHAIN_GCC_ARM\libmbed.a(mbed_ticker_api.o): In function `initialize': /home/jenkins/mbed_jenkins_node2/workspace/bm_wrap/1673/mbed-os/hal/mbed_ticker_api.c:51: undefined reference to `__aeabi_uldivmod' /home/jenkins/mbed_jenkins_node2/workspace/bm_wrap/1673/mbed-os/hal/mbed_ticker_api.c:59: undefined reference to `__aeabi_llsl' collect2.exe: error: ld returned 1 exit status make: *** [mbed_blinky.axf] Error 1
I am wondering how to fix it.
posted by 13 Mar 2018Unfortunately I have never used the LPC Xpresso IDE. However, "undefined reference to memset
" means that a memset
function was declared but never defined. I figured out that such function is defined in the mbed_stats.c
file located in the platform
folder of the mbed library. So make sure that such file is listed in the make file of your project in order to be compiled and linked into the final binary.
Hello Zoltan.
Thanks to you, the problem has been solved.
The link setting of the project has been changed as follows.
Project Propaties -> C/C++ Build -> Settings -> Tool Settings -> MCU C ++ Linker -> General
No startup or default libs (- nostdlib) [checked] -> [No check]
Compilation succeeded and the LED flashed.
I am very happy. Thank you!
posted by 20 Mar 2018