【GCC】参数顺序导致的“undefined reference”问题
来源:互联网 发布:php 图片生成缩略图 编辑:程序博客网 时间:2024/06/07 07:19
上学的时候接触了gcc和makefile,但直到真正实习的时候开始使用,才发现自己学的真是搓啊……
言归正传,今天遇到一个问题,编译遇到一大串的“undefined reference”,命令如下:
后来经过摸索,发现如下命令可以编译成功:
但不明白其所以然。百度后发现原因(参见:http://hi.baidu.com/thinkingdeeply/blog/item/990035d18ecad0d0562c8468.html):
对于C/C++编译而言,读取编译选项是按照从左到右的顺序执行的(注1) 。那么当编译器遇到源文件的时候,就开始对源文件中用到的函数进行解析,找到相对应的函数的函数体或者说是实现(Definition of Function)。这个过程是按照先遇到不能解析的函数(unresolved function),然后在源文件选项后面的一些选项中寻找可能的函数体的信息,是这样的一个顺序进行的。那么我们可以发现对于Makefile A,由于包含函数体或者函数定义信息的编译选项出现在源文件之前,那么当编译器在源文件中遇到不能解析的函数时,在源文件之后的选项中寻找相关的信息,那么就出现了编译错误,也就是无法找到相关的函数定义。
因此上述两句命令的关键不同在于“triple_unittest.o”的位置是否在“-lgtest”之前,其它神马都是浮云。
PS:感冒真是难受啊!带病工作中ZZ~
- 【GCC】参数顺序导致的“undefined reference”问题
- GCC undefined reference问题总结
- gcc编译出现 undefined reference to 的问题
- gcc/g++ undefined reference to function() 问题的解决方法
- gcc编译出现undefined reference to 的问题
- gcc/mpicc 编译器 undefined reference to ... 问题的解决
- GCC版本不兼容导致的链接错误:undefined reference to `SomeFunction'
- gcc链接顺序新手坑-undefined reference to `XXX'
- gcc undefined reference to
- 踩坑,gcc 参数顺序导致编译出错?
- gcc库的链接顺序导致编译出错的问题
- 类中静态变量未定义导致undefined reference to static class member问题的解决方法
- gcc undefined reference to '__stack_chk_fail'【操作系统开发编译中遇到的问题】
- 用gcc编译.cpp文件可能出现"undefined reference to `__gxx_personality_v0'"问题的解决
- 用gcc编译.cpp文件可能出现"undefined reference to `__gxx_personality_v0'"问题的解决
- 解决gcc 编译时报错"undefined reference to 'main'" 问题
- linux gcc编译undefined reference to `stricmp'问题
- gcc 编译程序 undefined reference解决办法
- 高端内存的理解
- VC++ 中WM_COPYDATA 怎么样应用来实现两个进程间的数据传输
- 让iphone震动起来
- hibernate中sessionfactory的解释,以及与Dao的区别!
- Java 初始化顺序
- 【GCC】参数顺序导致的“undefined reference”问题
- OgreMax 导出
- 链接的class如何写a.a_link_y:link,a.a_link_y:visited,a.a_link_y:hover,a.a_link_y:active{ color:#FF6600} /*黄色link*/
- WebBrowser
- android相关问题、网摘集锦(持续更新中...)
- C#中Dispose和Close的区别
- JPA学习笔记(三):JPA关系处理
- header中的内容
- 一个JavaScript写的黑白棋AI