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

相关推荐
寻道模式11 小时前
【时间之外】GEO工具,事半功倍效果验证
优化·工具·geo·标题
深念Y7 天前
DeepSeek/MiMo 推理链缓存代理:从内存到 SQLite 的两级缓存架构实战
数据库·缓存·架构·sqlite·内存·优化·分层
麦哲思科技任甲林11 天前
软件开发中的三次法则
重构·ai编程·优化·重复·三次法则
Irissgwe12 天前
二、Linux基础开发工具(2)
linux·makefile·gcc·g++·
Web极客码12 天前
在不降低图片品质的情況下优化网页性能
服务器·优化·网站
lljss202014 天前
搭建CMake+Ninja+GCC开发GD32
gcc
sulikey16 天前
个人Linux操作系统学习笔记2 - gcc与库的理解
linux·笔记·学习·操作系统·gcc·
REDcker19 天前
C++循环与编译器优化详解 别名不变量向量化与GCC Clang验证及perf实践
java·jvm·c++·c·clang·gcc
qq_3813385020 天前
前端虚拟列表与无限滚动性能优化实战:从万级数据到丝滑体验
前端·javascript·html·优化
七夜zippoe23 天前
DolphinDB多表关联查询:JOIN优化
优化·join·dolphindb·多表联查