已解决 关于静态库调用顺序问题
本帖最后由 cheng_bingyuan 于 2013-07-06 10:57 编辑============
版本一(成功)
============
(1)LIBS= stm32lib/CMSIS/DeviceSupport/libDeviceSupport.a
(2)LIBS+= stm32lib/STM32F10x_StdPeriph_Driver/src/libstm32_StdPeriph.a
LD = arm-none-eabi-gcc
LDFLAGS = -Wl,--gc-sections,-Map=$@.map,-cref,-u,Reset_Handler-T stm32f10x_flash_extsram.ld
MAIN_OUT = main
MAIN_OUT_ELF = $(MAIN_OUT).elf
all: $(obj)$(MAIN_OUT_ELF)
$(obj)$(MAIN_OUT_ELF):main.o stm32f10x_it.o $(LIBS)
$(LD) $(LDFLAGS) main.o stm32f10x_it.o$(LIBS)--output $@
============
版本二(失败)
============
版本二我调整了版本一中(1)和(2)两个链接库的位置就会报下面的错误,然后我加上--start-group和--end-group还是不起作用,网上查的是--start-group和--end-group可以解决调用顺序问题,不知道这里为什么不起作用,谢谢。
/home/abing/Downloads/GProj/stm32lib/CMSIS/DeviceSupport/system_stm32f10x.c:225: undefined reference to `fsmc_Init'
(2)LIBS+= stm32lib/STM32F10x_StdPeriph_Driver/src/libstm32_StdPeriph.a
(1)LIBS= stm32lib/CMSIS/DeviceSupport/libDeviceSupport.a
LD = arm-none-eabi-gcc
LDFLAGS = -Wl,--gc-sections,-Map=$@.map,-cref,-u,Reset_Handler-T stm32f10x_flash_extsram.ld
MAIN_OUT = main
MAIN_OUT_ELF = $(MAIN_OUT).elf
all: $(obj)$(MAIN_OUT_ELF)
$(obj)$(MAIN_OUT_ELF):main.o stm32f10x_it.o $(LIBS)
$(LD) $(LDFLAGS) main.o stm32f10x_it.o --start-group $(LIBS) --end-group --output $@
解决方法:加上-Wl,即$(LD) $(LDFLAGS) main.o stm32f10x_it.o -Wl,--start-group $(LIBS) --end-group --output $@
页:
[1]