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 就可以链接成功。

相关推荐
紫郢剑侠3 天前
【C语言编程gcc@Kylin | 麒麟 】5:获取系统启动时间
c语言·开发语言·kylin·gcc·麒麟操作系统
wsoz3 天前
GCC编译
linux·c语言·嵌入式·gcc
嘿嘿嘿x33 天前
Vscode/MinGW-64编译
gcc
嵌入式×边缘AI:打怪升级日志4 天前
GCC 编译器的使用
gcc
故事和你916 天前
sdut-程序设计基础Ⅰ-实验二选择结构(1-8)
大数据·开发语言·数据结构·c++·算法·优化·编译原理
安迪西嵌入式7 天前
如何在VS Code中配置GCC编译器
vscode·gcc·mingw64·msys
小北的AI科技分享22 天前
GEO崛起:AI时代企业搜索优化的新战场
优化·青山·精确
小北的AI科技分享25 天前
GEO优化:AI时代品牌成为权威信源的新策略
优化·上海·青山
小北的AI科技分享1 个月前
GEO崛起:AI时代企业流量获取的新战场
科技·优化·模型
小北的AI科技分享1 个月前
2026 GEO服务商测评:从SEO到GEO,AI时代的信息权重博弈
优化·模型·青山