编译链接5大潜规则

转载 2013年12月02日 21:42:59

转自:http://blog.csdn.net/zdl1016/article/details/9015447


潜规则1:

当一个符号在多个目标文件(.o)里同时出现时, LD报错. 提示符号多重定义.

当一个符号在多个静态库(.a)里同时出现时, LD不报错, 以第一个遇到的为准. 并且不会有任何warning提示 !!! 这个潜规则可能导致很多意想不到的问题!!!



潜规则2: LD对依赖库的输入顺序敏感.
LD在链接生成目标文件时, 会从左到有扫描输入的依赖库, 但是, 当依赖库之间也有依赖关系时,必须将依赖别人的库放在 “被别人依赖的库的前面. 否则,会链接失败! 这点和vc++很不一样哦.


潜规则3:头文件搜索

gcc在寻找头文件时, 会按照一定的顺序在很多个目录挨个寻找, 一旦找到一个即停止寻找. 如果项目中存在多个同名的头文件, 则以第一个为准, 后面的直接忽略. 这个特性会导致很多编译不通过的问题!

GCC的寻找依赖的头文件顺序参看Bloghttp://blog.csdn.net/crylearner/article/details/17013187


潜规则 4 :

 ld 会把所有通过-l指定的动态库全部链接进最终的目标程序中, 无论是否真的用到(导致生产环境加载失败)。

所以不需要的库就不要加入。

潜规则5:

假设我们知道undified symbol的符号确定存在xxx.a里面.虽然使用了Makefile里面加上了xxx.a的依赖, 但是, 一定要把xxx.a放在最后面. 因为有可能so依赖的其他的.a库也用到了xxx.a.否则极容易出现undifined symbol



相关文章推荐

GCC/LD编译链接潜规则 (第三弹) : 当项目库中包含多个同名的头文件时.

gcc在寻找头文件时, 会按照一定的顺序在很多个目录挨个寻找, 一旦找到一个即停止寻找. 如果项目中存在多个同名的头文件, 则以第一个为准, 后面的直接忽略. 这个特性会导致很多编译不通过的问题! ...
  • zdl1016
  • zdl1016
  • 2013年06月03日 17:35
  • 7303

GCC/LD编译链接潜规则 (第五弹) : 为什么会有undified symbol?

04d0ugKnyvJtx1snIGoTteO5TVfXOayBPxCk5BMqr94zlCu6xFw 问题一: 你是否遇到过: 经常遇到加载一些so时, 提示undified symbol,导致...

GCC/LD编译链接潜规则 (第四弹) : ld 会把所有通过-l指定的动态库全部链接进最终的目标程序中, 无论是否真的用到(导致生产环境加载失败)

GCC/LD编译链接潜规则 (第四弹) : ld 会把所有通过-l指定的动态库全部链接进最终的目标程序中, 无论是否真的用到(导致生产环境加载失败) nemozhang 2012-06-25 ...
  • zdl1016
  • zdl1016
  • 2013年06月03日 17:37
  • 4817

GCC/LD编译链接潜规则 (第二弹) : 为什么总链接失败? --LD对依赖库的输入顺序敏感

GCC/LD编译链接潜规则 (第二弹) : 为什么总链接失败? --LD对依赖库的输入顺序敏感. nemozhang 2012-05-16 18:07 7a92l3PJGnvaDHx...
  • zdl1016
  • zdl1016
  • 2013年06月03日 17:34
  • 6937

今天,你潜了吗?混互联网圈的5大潜规则!

说到“潜规则”,很多人的第一印象是娱乐圈的产物,其实在每一个行业都充斥着各种潜规则。以互联网圈为例,在这原本就竞争激烈而且混乱的环境下,想要闯出一片天地,必须掌握暗藏的5大潜规则:   1、用户比客...

2014年利于百度排名的3大潜规则<二>

利于百度排名的3大潜规则                                 晴天 刷百度流量短期可以提升关键词排名。第10页排名的站流量入口非常小,模拟真实的用户访问网站,按照这样的...
  • g_admin
  • g_admin
  • 2014年06月12日 09:56
  • 102

令人上瘾的手机游戏6大设计潜规则

在当今智能手机和平板盛行的时代,这些休闲游戏似乎已经达到人手一款的地步。毫无疑问,开发者将在他们的游戏中加入更多的关键心理元素。          为了发现隐藏在休闲游戏设计背后的潜规则,我们与Lu...

2014年面试官识人的五大额外小“潜规则”

http://blog.csdn.net/shenyisyn/article/details/18135679 本文内核来自于我的一位经验丰富、体重异常、阅人无数的HR好友,感谢各路好朋友们...
  • whgggg
  • whgggg
  • 2014年01月16日 09:14
  • 502

2014年面试官识人的五大额外小“潜规则”

“面试”这个过程说简单其实也能很简单。譬如急需招某种技能的单位会因为你拥有某方面的经验或特长立马录取你,哪怕你其他方面表现的很“烂”。   从广义上来讲,很多公司尤其是大中型公司的招聘,并不是因...

[房产热点] 揭曝中国房地产十大绝密“潜规则” 一看吓一跳

原文地址:http://bbs.house.ifeng.com/viewthread.php?tid=13887070&extra=page%3D1 绝密一 你们知道炒房团怎么炒? 绝大多数人...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编译链接5大潜规则
举报原因:
原因补充:

(最多只允许输入30个字)