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

2019-07-20 22:40发布

本帖最后由 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-mlibc_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-mlibc_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-mlibc_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
复制这段内容后打开百度 {MOD}手机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++还是不适合做嵌入式的吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。