linux 编译优化 选项,关于GCC优化选项打开后编译出错的问题

当尝试使用GCC的-O2优化选项编译简单的C代码时,出现了多处定义错误和符号索引无效的问题。错误涉及_fini、__data_start和__dso_handle等多个符号。这可能是因为编译命令中的-O2语法错误,应改为-g2选项进行调试编译。错误还涉及到链接器ld和调试信息,可能需要检查系统库和编译环境。
摘要由CSDN通过智能技术生成

当用GCC编译代码的时候,为什么指定优化等级就会报错?

测试用的c代码肯定是没有问题的,就是打印一个字符而已

#include 

void main(){

printf("%d\n",2);

}

执行gcc编译的指令我是这样的:

gcc emmbed.c -o2 emmbed

然后出来一堆错:

emmbed: In function `_fini"":

(.fini+0x0): multiple definition of `_fini""

/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crti.o(.debug_info): relocation 0 has invalid symbol index 7

/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crti.o(.debug_info): relocation 1 has invalid symbol index 8

/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crti.o(.debug_info): relocation 2 has invalid symbol index 9

/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crti.o(.debug_ranges): relocation 0 has invalid symbol index 4

/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crti.o(.debug_ran

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值