linux下链接库知识

一.目标文件的类型:

  • 可重定位目标文件: 包含了二进制的代码和数据,可以与其他可重定位目标文件合并,并创建一个可执行目标文件。(.o文件,使用-c命令生成)
  • 共享目标文件。它是一种在加载或者运行时进行链接的特殊可重定位目标文件。
文件名文件格式ELF Type编译方式
hello.stxtN/A-S
hello.oelfRelocatable file-c
libhello.aelfRelocatable filear -r libhello.a hello.o
libhello.soelfShared object filegcc -shared -fPIC -o libhello.so hello.o
a.outelfShared object file

 

二.链接的原则

  • libc库中的函数不需要链接。
  • 对于传参为常量的数学函数调用,生成可执行文件过程中可能将其优化,而无需调用该函数。
  • 库链接一般放在命令行结尾。
  • 当存在同名的动态库和静态库时:默认选择动态库,-static参数选择静态库

   参考:https://www.yanbinghu.com/2019/06/27/47343.html

三.常用命令

静态库的反解析:

       ar -x libhello.a

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值