OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2296|回复: 2

使用g++编译连接工程失败(工程中使用c++文件及特性)

[复制链接]

3

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2019-6-10
在线时间
27 小时
发表于 2019-6-22 22:13:13 | 显示全部楼层 |阅读模式
8金钱
本帖最后由 czstara12 于 2019-7-14 07:23 编辑

连接错误
错误输出
  1. arm-none-eabi-g++ OBJ/sys.o OBJ/delay.o OBJ/usart.o OBJ/t.o OBJ/led.o OBJ/startup_stm32f10x_hd.o -mcpu=cortex-m3 -mthumb   -specs=nano.specs -TSTM32F103RCTx_FLASH.ld  -lc -lm -lnosys  -Wl,-Map=OBJ/tt.map,--cref -Wl,--gc-sections -o OBJ/tt.elf
  2. d:/program files (x86)/gnu tools arm embedded/7 2018-q2-update/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7-m\libc_nano.a(lib_a-abort.o): In function `abort':
  3. abort.c:(.text.abort+0xa): undefined reference to `_exit'
  4. d:/program files (x86)/gnu tools arm embedded/7 2018-q2-update/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7-m\libc_nano.a(lib_a-signalr.o): In function `_kill_r':
  5. signalr.c:(.text._kill_r+0xe): undefined reference to `_kill'
  6. d:/program files (x86)/gnu tools arm embedded/7 2018-q2-update/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7-m\libc_nano.a(lib_a-signalr.o): In function `_getpid_r':
  7. signalr.c:(.text._getpid_r+0x0): undefined reference to `_getpid'
  8. collect2.exe: error: ld returned 1 exit status
  9. make: *** [makefile:179: OBJ/tt.elf] Error 1
复制代码

项目文件:
链接:https://pan.baidu.com/s/17NZtnV8xDV5BgGo8cYWobg
提取码:ykxm
复制这段内容后打开百度网盘手机App,操作更方便哦

简要描述
最开始搭建的是gcc+makefile环境下的寄存器模板 编译正常 后来想加入编译c++文件的能力 于是进行了一系列修改 直到遇到这个问题
文件来源
1.启动文件,makefile文件,.ld文件 stm32cubemx创建的工程中提取
2.system文件夹HARDWARE文件夹 购买单片机时附带光盘中项目中提取
环境
gcc version 7.3.1 20180622 (release) [ARM/embedded-7-branch revision 261907] (GNU Tools for Arm Embedded Processors 7-2018-q2-update)
编译参数 请参考编译sys.c时的参数
arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb   -DSTM32F10X_HD  -ISYSTEM/delay -ISYSTEM/sys -ISYSTEM/usart -IHARDWARE/LED  -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MF"OBJ/sys.d"  -Wa,-a,-ad,-alms=OBJ/sys.lst SYSTEM/sys/sys.c -o OBJ/sys.o
果然 c++还是不适合做嵌入式的吗?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2019-6-23 01:14:02 | 显示全部楼层
回复

使用道具 举报

3

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2019-6-10
在线时间
27 小时
 楼主| 发表于 2019-7-14 07:24:49 | 显示全部楼层
问题解决
解决方法:
吧LDFLAGS里的-specs=nano.specs改为-specs=nosys.specs
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 02:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表