UNIX下的ar和ld有什么区别?

hupo1982 2007-09-26 03:32:08
这两天看我们公司的旧makefile,看到以前的做静态库(.a文件)有的是用ld链接起来的,有的是用ar -r 链接起来的,请问这两个有什么区别吗?做静态库最好用哪一个呢?
...全文
1017 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yingbinma 2009-02-17
  • 打赏
  • 举报
回复
谢2楼
dai_weitao 2007-09-27
  • 打赏
  • 举报
回复
对HP UNIX不熟, +z选项不知道, 不好意思.
hefuhua 2007-09-27
  • 打赏
  • 举报
回复
静态的用-static吧
hupo1982 2007-09-27
  • 打赏
  • 举报
回复
再问个问题:在HP UNIX下编译动态库的时候,编译选项除了-c之外还要加上一个+z,那么如果我的这个动态库里面包含了一个静态库,那么做那个静态库的时候需不需要加+z呢?
dai_weitao 2007-09-26
  • 打赏
  • 举报
回复
区别就是.a的库修改之后需要重编译, 而.so的不需要.
cceczjxy 2007-09-26
  • 打赏
  • 举报
回复
ar只是把你的多个文件归档成一个文件,不检查文件之间的相互关系.
而ld是把编译好的文件连接成一个有机整体,把单独编译的文件内使用的相互关联的变量,函数等地址放入相应位置.
dai_weitao 2007-09-26
  • 打赏
  • 举报
回复
用ar吧.

23,110

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧