Linux共享库简单总结
【摘要】
库
静态库
编译的二进制会重新包含一份静态库的副本
共享库
编译
gcc -shared -o file.c
-fPIC
链接
ld
ld-linux.so.2
可执行程序–>动...
库
静态库
编译的二进制会重新包含一份静态库的副本
共享库
编译
gcc -shared -o file.c
-fPIC
链接
ld
ld-linux.so.2
可执行程序–>动态依赖表
流程:程序运行–>加载ld-linux.so.2–>搜索动态库路径寻–>路径下根据动态链接表搜索动态库 –> 搜索相应符号链接加载至内存执行
符号链接覆盖:简单的说是两个同名的函数具有相同的符号链接则会绑定第一次搜索到的符号链接函数
程序运行时搜索到共享库的三种方法
LD_PATH
/lib /usr/lib /etc/ld.config.d/ 下路径添加
-rpath 编译时选项
soname
库别名
真实库: libname.so.major.min –> libname.so.1.1
别名:libname.so.major–> libname.so.1
软链接:libname.so–>libname.so
软链接–>真实库
工具
ldd
nm
objdump
ldconfig
readelf
命名公约
文章来源: great.blog.csdn.net,作者:小麦大叔,版权归原作者所有,如需转载,请联系作者。
原文链接:great.blog.csdn.net/article/details/78896858
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)