linux-动态库制作与使用

​​​​​​(6条消息) linux-静态库制作与使用_云的小站的博客-CSDN博客

目录

创建动态库

使用动态库


根据静态库创建时写的两个源文件,我们来制作动态库

                                                                                                              

创建动态库

根据这2个源文件和2个头文件我们来学习制作动态库。

我们先让编译两个源文件成.o文件,注意要加-fPIC选项,产生用于生成位置无关的代码。

然后将两个.o文件打包在一起形成动态库

形成libhello.so动态库。我们将其头文件和库打包在一个目录下,为了后续有个知识点,我们将静态库也打包过去。

linux-动态库制作与使用_第1张图片

压缩打包目录

 这样我们就可以发布给别人了。

将压缩文件发给uselib。

这样我们的库就制作完毕了。

使用动态库

来到uselib目录下。

将压缩文件解压

linux-动态库制作与使用_第2张图片

先将想静态库使用一样编译main.c编译

linux-动态库制作与使用_第3张图片

运行main,发现没有库的路径,

 动态库编译的文件需要知道库的路径,有许多的方法,

一、修改系统变量LD_LIBRARY_PATH

在路径后追加我们的库路径(不推荐)

 二、在用户配置中永久修改库的路径(不推荐)

三、在系统lib64中添加路径(不推荐)

四、在/etc/ld.so.conf.d/目录下创建一个属于自己的文件,将路径写里面去,不需要其他东西

linux-动态库制作与使用_第4张图片

myzjy.conf 中只需要写个库路径即可

回到uselib目录下 

linux-动态库制作与使用_第5张图片

先需要刷新动态库路径,因为现在的库路径缓存并没有将我们的myzjy.conf纳入,需要重新刷新缓存。ldconfig指令,对了我们需要提升权限才可使用该指令。

linux-动态库制作与使用_第6张图片

 这就是我们的动态库的使用。

后面还有许多使用方法,但是我推荐这种。

你可能感兴趣的:(linux,运维,服务器)