代码改变世界

GCC/G++常见链接错误

2011-04-20 09:21  zhenjing  阅读(1111)  评论(0编辑  收藏  举报

链接错误的直接表现就是:****符号未定义。几种常见的链接错误如下:

  1. 缺少*.o文件          ---- 对策:将相应的文件加入Makefile或命令行
  2. *.o文件未更新       ---- 对策:删除旧*.o文件重新编译或者依赖于最新的depend来编译(增删文件时确保make depend)。
  3. 缺少相应的库文件  ---- 对策:将相应的文件加入Makefile或命令行
  4. 依赖的库文件版本不对或未更新 ---- 对策:重新生成所依赖的库文件
  5. 库文件的出现顺序不对 ----- 对策:根据库的依赖关系,调整库出现的顺序。原则:只允许先出现的库依赖于后出现的库。

其中,第5种错误最难发现。如果发现程序所需的库都已经引入,但仍出现链接错误,应理清库之间的依赖关系,确认是否某些基本库被放到前面,导致后面的库无法找到前面库中的符号信息!据说对于高版本gcc没有这个问题。