Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ G++;ARM交叉编译:未定义的引用_C++_Gcc_Arm_Cross Compiling - Fatal编程技术网

C++ G++;ARM交叉编译:未定义的引用

C++ G++;ARM交叉编译:未定义的引用,c++,gcc,arm,cross-compiling,C++,Gcc,Arm,Cross Compiling,我正在尝试用arm-none-eabi-g++编译代码。 但是,它首先失败,并显示以下错误消息 /usr/lib/gcc/arm-none-eabi/4.8.2/../../../arm-none-eabi/bin/ld: cannot find -lstdc++ 为了解决这个问题,我确保可以链接libstdc++.a。一旦我修复了它,它就失败了,出现以下错误: /usr/lib/gcc/arm-none-eabi/4.8.2//libgcc.a(unwind-arm.o): In funct

我正在尝试用arm-none-eabi-g++编译代码。 但是,它首先失败,并显示以下错误消息

/usr/lib/gcc/arm-none-eabi/4.8.2/../../../arm-none-eabi/bin/ld: cannot find -lstdc++
为了解决这个问题,我确保可以链接libstdc++.a。一旦我修复了它,它就失败了,出现以下错误:

/usr/lib/gcc/arm-none-eabi/4.8.2//libgcc.a(unwind-arm.o): In function `get_eit_entry':
/build/buildd/gcc-arm-none-eabi-6/build/arm-none-eabi/libgcc/../../../gcc-4.8.2/libgcc/unwind-arm-common.inc:221: undefined reference to `__exidx_end'
/build/buildd/gcc-arm-none-eabi-6/build/arm-none-eabi/libgcc/../../../gcc-4.8.2/libgcc/unwind-arm-common.inc:221: undefined reference to `__exidx_start'
/usr/lib/gcc/arm-none-eabi/4.8.2/../../../arm-none-eabi/lib/libc.a(lib_a-abort.o): In function `abort':
/build/buildd/newlib-2.1.0/build/arm-none-eabi/newlib/libc/stdlib/../../../../../newlib/libc/stdlib/abort.c:63: undefined reference to `_exit'
/usr/lib/gcc/arm-none-eabi/4.8.2/../../../arm-none-eabi/lib/libc.a(lib_a-signalr.o): In function `_kill_r':
/build/buildd/newlib-2.1.0/build/arm-none-eabi/newlib/libc/reent/../../../../../newlib/libc/reent/signalr.c:61: undefined reference to `_kill'
/usr/lib/gcc/arm-none-eabi/4.8.2/../../../arm-none-eabi/lib/libc.a(lib_a-signalr.o): In function `_getpid_r':
/build/buildd/newlib-2.1.0/build/arm-none-eabi/newlib/libc/reent/../../../../../newlib/libc/reent/signalr.c:96: undefined reference to `_getpid'
/usr/lib/gcc/arm-none-eabi/4.8.2/../../../arm-none-eabi/lib/libc.a(lib_a-sbrkr.o): In function `_sbrk_r':
/build/buildd/newlib-2.1.0/build/arm-none-eabi/newlib/libc/reent/../../../../../newlib/libc/reent/sbrkr.c:58: undefined reference to `_sbrk'
collect2: error: ld returned 1 exit status
make: *** [firmware.elf] Error 1
以下是它失败的实际步骤:

arm-none-eabi-g++ -static -nostartfiles -ffreestanding -T ld_script -Wl,-O1,-Map=list.txt  ftl.o sata_identify.o sata_cmd.o sata_isr.o sata_main.o sata_table.o initialize.o mem_util.o flash.o flash_wrapper.o misc.o uart.o init.o -o firmware.elf -L"/usr/lib/gcc/arm-none-eabi/4.8.2/" -lgcc

有人能提出解决办法吗?此外,如果我使用arm-none-eabi-gcc而不是arm-none-eabi-g++,这也可以很好地解决问题。

编译器生成的异常处理代码导致了问题,它依赖于运行时组件,而这些组件在您的构建中并不存在


关闭编译器代码生成中的异常处理。

粗略猜测
-fno异常
?谢谢@matstpeterson!这确实消除了那些错误!谢谢。
-fno异常的作用是什么?我在网上找不到任何东西。谢谢你!此外,这会有任何运行时的副作用吗?我计划在ARM7TDMI控制器上运行代码。不要尝试抛出异常-会发生一些不好的事情,我不确定会发生什么(但希望所有代码都使用此标志编译,如果您尝试,我很确定会出现错误)