gcc: -O2 优化选项的一个副作用:可以掩盖链接,符号未定义错误 undefined reference to

这个-O2 优化选项,可以掩盖链接错误。因为这个包含130多项的优化选项。里面有关于四代码的优化。

假如一个函数A里调用了另一个函数B,但是函数B是外部定义的符号,而且没有定义。

同时如果A函数是个死函数的话,-O2,可能将这个函数A优化为如下的方式,直接返回。看似从未调用这个函数。

c 复制代码
(gdb) disass set_shared_ip_state_down
Dump of assembler code for function A:
   0x000000001008f4c0 <+0>:     mov    $0x1,%eax
   0x000000001008f4c5 <+5>:     retq

所以看问题时,需要注意这一点,如果用-O2 编译链接工程,没有问题。并不一定代表去掉 -O2 就可以链接成功。

相关推荐
an12321215 天前
ARM---编译工具链|程序段|GPIO外设驱动
gcc·gpio
Tairitsu_H5 天前
[Linux] 编辑器vim、编译器和动静态链接
linux·vim·gcc·g++·动态链接·静态链接
wardenlzr6 天前
车机看门狗(Watchdog)为何会让整机硬重启
android·优化·车机
SunnyRivers6 天前
vLLM 官方调优方案
优化·vllm
qqww1556 天前
Win11更新后Edge卡顿掉帧?隐私窗口流畅解决办法
windows·edge·优化·卡顿
yanlaifan18 天前
编译器gcc介绍
gcc
捷瑞电子工坊20 天前
Ubuntu 下安装 VSCode 和 gcc 的简单步骤
vscode·ubuntu·代码编辑器·安装教程·gcc·deb·snap
GKxx25 天前
在 HarmonyOS 上从源码构建 GCC 16(gcc/g++ + libstdc++ + libsanitizer):完整记录
c++·华为·harmonyos·鸿蒙·gcc
2601_957956901 个月前
2026 武汉智造 GEO 优化:一网推李冬玭高端制造行业精准获客实战
优化·geo·智造·2026·武汉
又是重名了1 个月前
大数据量导出 优化方案多版 第五版
数据库·优化·导出·大数据量