免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1571 | 回复: 0
打印 上一主题 下一主题

[Linux] 已解决 关于静态库调用顺序问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-06-26 10:41 |只看该作者 |倒序浏览
本帖最后由 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 $@
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP