文章目录
1 写在前面
最近我们团队在排查一个可能由于GCC链接引发的问题,说起来挺有意思的,在排查的过程中,我不断地调整链接相关的方式,包括 增删链接选项、增删.o文件、调整链接顺序、重组静态库 等等,其中有一次居然给我整出一个 undefined reference to ‘xxx’ 的链接错误;怀疑刨根问底的心态,我们开始这次问题追溯之旅。
通过本文的阅读,你将了解到以下内容:
- 如何分析并解决 undefined reference to ‘xxx’ 这类链接错误的问题?
- 如何简单分析静态库文件里面的 符号(函数或全局变量)?
- 如何将object文件打包成静态库?
- 几个跟链接相关的链接参数的作用。
2 问题描述
2.1 问题现场
我们来看一下问题现场,错误发生在 链接 阶段;如果对GCC编译C程序的流程还不够清晰的,可以再看看我之前写的一篇文章。