基于Limifrog STM32L board examples,我正在尝试为ARM开发设置自己的工具链(基于STM32F40x)。
我收到错误:
C:\Users\pmu\embedded\empty_stm32>make arm-none-eabi-gcc -mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -I ./inc -I./../Libraries/CMSIS/Device/ST/STM32F4xx/Include -I./../Libraries/CMSIS/ Include -Os -Wall -ffunction-sections -fdata-sections -fno-exceptions -Wno-write -strings -o main src/main.c c:/program files (x86)/gnu tools arm embedded/4.9 2015q3/bin/../lib/gcc/arm-none -eabi/4.9.3/../../../../arm-none-eabi/lib/armv7e-m/fpu\libc.a(lib_a-exit.o): In function `exit': exit.c:(.text.exit+0x16): undefined reference to `_exit' collect2.exe: error: ld returned 1 exit status make: *** [main] Error 1编译时
:
#include "My_Globals.h" int main(void) { while(1) { } return 0; }
这个错误是什么意思?为什么不在上面的董事会例子中出现?
Makefile
# Compilation Tools CC = arm-none-eabi-gcc LD = arm-none-eabi-ld CP = arm-none-eabi-objcopy OD = arm-none-eabi-objdump SIZE = arm-none-eabi-size # Optimization (ß,1,2,s) OPT = s ROOT = ./.. CMSIS_DIR = $(ROOT)/Libraries/CMSIS HAL_DIR = $(ROOT)/Libraries/CMSIS/Include SRC = ./src INC_LOCAL = ./inc INCLUDES = \ $(INC_LOCAL) \ $(CMSIS_DIR)/Device/ST/STM32F4xx/Include \ $(CMSIS_DIR)/Include ARCH_FLAGS = -mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 LD_FLAGS = # Compiler flags CFLAGS = \ $(ARCH_FLAGS) \ $(addprefix -I,$(INCLUDES)) \ -O$(OPT) \ -Wall \ -ffunction-sections \ -fdata-sections \ -fno-exceptions \ -Wno-write-strings main: @echo "start" @echo $@ $(CC) $(LDFLAGS) $(CFLAGS) -o $@ src/main.c
现在,可以使用哪些库来重用其他地方的_exit()实现?