LINUX动态链接库的创建与使用?(Linux动态库编写:从入门到精通(linux 动态库 编写))

2023-12-26 37阅读

LINUX动态链接库的创建与使用?

对于动态链接库来说,程序的可执行文件当中会留有一个它的标记,当程序运行到相应的标记的时候,就会调用相应的动态库。由于动态库节省空间,所以一般linux下面链接程序的时候都是默认的按照动态方式链接的。

LINUX动态链接库的创建与使用?(Linux动态库编写:从入门到精通(linux 动态库 编写))(图片来源网络,侵删)

如何查看linux动态库中包含哪些函数?

主要有两种方法,如下:

1、方法1 nm *.so

2、方法2 readelf -a *.so

LINUX动态链接库的创建与使用?(Linux动态库编写:从入门到精通(linux 动态库 编写))(图片来源网络,侵删)

说明:

nm可列出.o .a .so中的符号信息,包括诸如符号的值,符号类型及符号名称等。所谓符号,通常指定义出的函数,全局变量等等。

示例说明 :

LINUX动态链接库的创建与使用?(Linux动态库编写:从入门到精通(linux 动态库 编写))(图片来源网络,侵删)

nm -D libname.so

nm [option(s)] [file(s)]

有用的options:

-A 在每个符号信息的前面打印所在对象文件名称;

linux动态库和静态库的区别?

动态链接库和静态链接库一般是编译集成一系列的接口(函数)

在程序源代码编译完成后通过编译器编译并通过链接器与这些库进行链接

动态链接库与静态链接库的区别在于链接器在进行链接时静态库会被直接编译进程序里

而动态链接库并不会,我们这里将这些链接库称作依赖(动态库和静态库)

程序的运行需要这些依赖,程序在静态链接后该程序本身便已包含该依赖

而动态链接后的程序本身本不包含该依赖,这些依赖需要执行者自行安装进操作系统(动态库、运行时库)

程序运行时会动态地加载这些库

linux上动态库一般的后缀后为.so

静态库一般的后缀为.a

由于静态链接会直接将库编译进程序里所以静态编译后的程序相较于动态链接所要大

到此,以上就是小编对于linux动态库的使用的问题就介绍到这了,希望这3点解答对大家有用。

文章版权声明:除非注明,否则均为游侠云资讯原创文章,转载或复制请以超链接形式并注明出处。

目录[+]