男儿欲遂平生志,五经勤向窗前读。这篇文章主要讲述Linux(程序设计):06---动态函数库与静态函数库(ldconfigldd命令与/etc/ld.so.conf)相关的知识,希望能为你提供帮助。
一、动态函数库(.a)
二、动态函数库(.so)
- ?扩展名:?libxxx.a
- ?编译操作:?这类函数库在编译的时候直接整合到执行程序当中,所以用静态函数库编译成的文件会比较大一些
- ?程序独立执行的状态:?这类函数库最大的优点就是编译成功的可执行文件可以独立运行,不需要再向外部读取函数库的内容
- ?升级难易度:?因为函数库直接整合到执行文件中,所以若函数库升级时,整个执行文件必须重新编译才能将新版的函数库整合到程序当中。在升级方面比较麻烦
三、ldd命令?1.功能?
【Linux(程序设计):06---动态函数库与静态函数库(ldconfigldd命令与/etc/ld.so.conf)】
- ?扩展名:?libxxx.so
- ?编译操作:?动态函数库在编译的时候,在程序里面只有一个【指针】的位置而已。当执行文件要使用到函数库的功能时,程序才会根据这个指针读取函数库来使用。函数库的实际内容并不会整合到程序中,所以该程序的大小比使用静态函数库的程序会小一些
- ?程序独立执行的状态:?这类型的函数库所编译出来的程序不能被独立执行,因为我们使用到函数库的功能时,程序才会去读取函数库,所以这个函数库必须存在才可以,且函数库的目录不能改变。否则程序将找不到指定的函数库来执行
- ?升级难易度:?因为函数库的内容并没有实际加载到程序中,所以对动态函数库的更新比较方便,且程序不需要被重新编译
- 查看一个可执行的二进制文件含有什么动态函数库
- ldd[-vdr]可执行文件名
- -v:列出所有的内容信息
- -d:重新将数据有遗失的链接点显示出来
- -r:将ELF有关的错误信息显示出来
- ?找出/usr/bin/paswd这个文件的函数库信息?
文章图片
推荐阅读
- Linux(程序设计):05---gcc的基本用法
- 服务/软件管理(06---Linux查看主机路由(route命令))
- Circle Linux镜像在阿里云镜像站首发上线
- 服务/软件管理(07---Linux下查看MAC与ARP table(arp命令))
- 服务/软件管理(10---Linux的网卡(ethtool命令))
- Linux-find命令
- Linux(程序设计):41---TCP网络编程
- Linux中yum和apt-get
- Linux-SNAT和DNAT