编译链接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/ld的编译链接的有很多潜规则, 如果不幸遇到了, 并且没有意识到这是个潜规则, 那么会浪费很久很久的调试时间而不得其解. 下面总结我所遇到的一些潜规则. 本文先出第一弹, 其他的潜规则将陆续...
  • LegenDavid
  • LegenDavid
  • 2016年11月02日 20:11
  • 1341

互联网5大潜规则

想在中国互联网业界混,就必须掌握5大生死逻辑:①用户比客户重要;②草根比精英重要;③跨界优势及资源副作用;④视野比勤奋更重要;⑤免费的是最贵的。大道至简,适者生存,2014年互联网之路依然任重道远。...
  • Demon_311
  • Demon_311
  • 2015年10月23日 10:06
  • 357

职场5大潜规则不可不知

与 白纸黑字、公众认可的显规则不同,潜规则恰如摆不上桌面的小菜,从不会大鸣大放地写在告示板上,却需要你心明眼亮地默默参透,才能避免接二连三的尴尬糗事。  潜规则1 不要苛求百分百的公平   显规则告诉...
  • J1985Z
  • J1985Z
  • 2009年12月21日 10:23
  • 268

教授潜规则漂亮女研究生

教授潜规则漂亮女研究生,教授,女研究生,够吸引眼球,注意力就是经济。 故事要素:     时间:周末,周五暴露     人物:中国地质大学 某某教授, 某某待毕业漂亮女研究生     事件:潜规则 ...
  • zxg519
  • zxg519
  • 2014年01月15日 12:18
  • 1834

IT人员相信的十条潜规则

所谓“潜规则”,就是看不见的、又没有明文规定,被某个圈子的人所深谙而遵循的一种规则。这是eweek 公布的IT人员相信的十条潜规则。1.         安全领域最大的潜规则黑客跟安全产商是一伙的。任...
  • ago52030
  • ago52030
  • 2007年08月31日 00:36
  • 620

告诉你最真实的招聘潜规则

告诉你最真实的招聘潜规则    又到春天了,大学生们又该忙找工作了。我作为一个人到中年的职场油子谈谈招聘,希望能对 大家的择业有所帮助吧。     首先要解开一个 误 区,那就是应届的大学毕业生很难找...
  • byfq
  • byfq
  • 2008年04月13日 16:22
  • 655

混互联网圈的5大潜规则!

原文链接:http://mobile.51cto.com/hot-422244.htm 想在中国互联网业界混,就必须掌握5大生死逻辑:1、用户比客户重要;2、草根比精英重要;3、跨界优势及资源副作用...
  • u011938863
  • u011938863
  • 2013年12月10日 20:21
  • 618

【腾讯潜规则】师兄只能帮你到这了

六月流火,夏日无烟,落叶铅华,水石无声............. 哦哦, 煽情点了,师兄上面一段文字还是搞不定了, 好了,浓重介绍一下自己 11年进入腾讯,来自湖南,目前在sng 线上干活; 又是...
  • hejias
  • hejias
  • 2013年08月09日 23:57
  • 1626

Java工程师可能不知道的那些FE潜规则

写了一个多月JavaScript,感觉如今可不比几年前只有IE6的年代,而且过去只是用JS写个 Ajax或者是简单的表单验证,可如今写一个稍微复杂点的小应用,要兼容所有浏览器,才发 现真是太难了,...
  • Acmey
  • Acmey
  • 2011年08月30日 20:53
  • 390

外包潜规则

每个圈子都有它的潜规则。就像娱乐圈的男导演和女演员,最近高校界又很风靡的男导师和女学生。当然,外包圈的潜规则与情色无关,也与权钱无缘,只是有一些外人可能不是很清楚的道儿道儿,这里跟大家八卦一下。潜规则...
  • ELuYouNi
  • ELuYouNi
  • 2009年08月31日 16:37
  • 998
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编译链接5大潜规则
举报原因:
原因补充:

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