Linux 动态链接库(shared object)的基础知识

本文介绍了Linux动态链接库的基础知识,包括动态库与静态库的区别,重点解析了ldd命令用于查看可执行文件的依赖关系,以及ldconfig命令如何管理动态链接库,确保系统能够正确共享库文件。通过实例分析了动态链接库问题的排查和解决方法。
摘要由CSDN通过智能技术生成

动态链接库的就基础知识

库有两种:动态和静态;动态是以.so 为后缀,静态是以.a为后缀;比如:libhello.o  libhello.a

  • 静态库是在写代码时调用的库函数,代码中调用库函数,在编译时会从库函数中copy 整个库函数到可执行文件;所以一旦连接成功(编译成功);可执行文件中就包含了

整个库函数的代码,以后在执行这个静态文件时就不用这个静态库函数了。

  • 动态库函数:在linux中.so 为后缀,不是可执行程序的一部分,当执行可执行程序时动态加载这个动态链接库;而且这个动态链接库也是多个程序共享的,可以节省空间;linux 下进行连接的默认操作是首先连接动态连接。工作原理是动态库会在可执行程序内留下一个标记;指明当程序执行时,首先必须载入这个动态库
  •  linux 动态连接库,叫 共享对象:shared object  ;就相当于windows下面的DLL

        LINUX 的shared object 在我们日常写代码中可以自己写,把一些常用的工具都写成库函数,这样每次用时直接调用库函数,不用重复写代码。

Linux  ldd 命令详解

  1. ldd 是一个linux的 shell 脚本,并不是一个可执行程序(C++编译后的可执行程序);用来打印共享库的依赖关系
     which ldd
    /usr/bin/ldd<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值