I'm new to the field of microcontrollers. I need to port an IDE which is compiling programs for AVR microcontrollers to compile programs for ARM microcontrollers. I have just replaced the compiler from AVR to ARM and added some options as told by someone. The following is the command:
\ARM-GCC\bin\arm-none-eabi-gcc -O0 -ffunction-sections -Wall -std=gnu99 -mfloat-abi=soft
-Wa,-adhlns="[email protected]" -fmessage-length=0 -mcpu=cortex-m0 -mthumb -g3 -gdwarf-2 -Wl,
--gc-sections -o <Dir_name>\Build_Files\Blink_arm.cpp.elf <Dir_name>\Build_Files\Blink_arm.cpp.o <Dir_name>\Build_Files\core.a
-L<Dir_name>\Build_Files -lm
When I execute it I get the follwing error:
tools/arm-gcc/bin/../lib/gcc/arm-none-eabi/4.6.2\libc.a(lib_a-exit.o): In function `exit':
exit.c:(.text+0x18): undefined reference to `_exit'
collect2: ld returned 1 exit status
May I get some help on what is this error and how can I solve it. And also I don't know what those options in the command line specify.
exit()
function makes a call to_exit()
, which isn't defined in any library. your compiler must be set up incorrectly, although you could perform a quick fix by definingvoid _exit(int status)
yourself (NOTE: this won't work is your libc declares _exit() with a different signature. your_exit()
could simply halt in an infinite loop like its AVR counterpart. fixing your GCC installation would be the recommendable option. – Dylan