linux下动态库的运用

本文详细指导如何将HPDF库的头文件放入系统路径,将.so动态库添加到系统库路径,包括创建或移动文件、处理符号链接、更新库缓存,以及验证库的安装和配置过程。最后说明如何在编译时链接库文件。

将头文件放入系统路径

先将include内容放入/usr/local/include下,这里可以先在/usr/local/include创建一个mkdir hpdf 文件夹存放所有*.h

mv /your/include/path/include/*.h /usr/local/include/hpdf

将your/include/path换成你下载下来包中include的地址
在这里插入图片描述

tips:也可以不创建hpdf文件夹,直接mv到/usr/local/include下,两者用法区别如下所示
在这里插入图片描述
在这里插入图片描述

将.so动态库放入系统路径

要将库文件添加到/usr/local/lib中,你需要具有超级用户权限(通常使用sudo命令)。以下是将libhpdf.so及其相关文件复制到/usr/local/lib中的步骤:

复制库文件:

使用sudo命令将库文件从当前目录复制到/usr/local/lib。由于你可能有多个版本的库文件(例如,libhpdf.so,libhpdf.so.2.4,和libhpdf.so.2.4.4),你需要确保复制所有这些文件。

在这里插入图片描述

sudo cp libhpdf.so* /usr/local/lib/

这个命令会复制所有以libhpdf.so开头的文件到/usr/local/lib目录。

tips:查看是否是如下所示(如果不是则进行1.2步骤)
在这里插入图片描述

这里,libhpdf.so 和 libhpdf.so.2.4 是指向实际库文件 libhpdf.so.2.4.4 的符号链接。如果 libhpdf.so.2.4 是一个实际的库文件而不是符号链接,那么你可能需要重新考虑库文件的安装步骤。

  1. 重新创建符号链接:
    如果 libhpdf.so.2.4 不应该是一个实际的库文件,你需要删除它并重新创建正确的符号链接。使用以下命令:
sudo rm /usr/local/lib/libhpdf.so.2.4  
sudo ln -s /usr/local/lib/libhpdf.so.2.4.4 /usr/local/lib/libhpdf.so.2.4
  1. 同时确保 libhpdf.so 指向正确的版本:
sudo ln -s /usr/local/lib/libhpdf.so.2.4 /usr/local/lib/libhpdf.so

更新库缓存:

当新库文件被添加到/usr/local/lib时,你可能需要更新系统的库缓存,以便运行时链接器(如ld.so)能够找到这些新添加的库。在大多数Linux发行版中,你可以使用ldconfig命令来更新缓存。

sudo ldconfig

这个命令会重新生成库缓存,并扫描/usr/local/lib(以及其他几个标准目录)来添加新发现的库。

验证安装:

为了验证库是否已成功安装并可以被系统找到,你可以使用ldconfig -p命令来列出所有缓存的库,并检查libhpdf.so是否在其中。

ldconfig -p | grep libhpdf

如果一切正常,你应该能够看到与libhpdf相关的条目。在这里插入图片描述

  • 查看库文件是否存在:

首先,使用 ls 命令来列出 /usr/local/lib/ 目录下与 libhpdf 相关的文件。

ls /usr/local/lib/ | grep libhpdf

这个命令将列出所有包含 libhpdf 的文件名。你应该能看到类似 libhpdf.so、libhpdf.so.2.4 和 libhpdf.so.2.4.4 的文件。
在这里插入图片描述

  • 检查文件类型:

使用 file 命令来检查这些文件的类型,以确认它们是共享库文件还是符号链接。

file /usr/local/lib/libhpdf.so*

对于符号链接,输出应该类似于:

/usr/local/lib/libhpdf.so: symbolic link to libhpdf.so.2.4  
/usr/local/lib/libhpdf.so.2.4: symbolic link to libhpdf.so.2.4.4

对于实际的共享库文件,输出将显示文件是一个 ELF 共享对象。
在这里插入图片描述

  • 检查符号链接的目标:

如果 libhpdf.so 和 libhpdf.so.2.4 是符号链接,使用 ls -l 命令来查看它们指向哪个文件。

ls -l /usr/local/lib/libhpdf.so*

输出应该显示这些符号链接指向正确的库文件。
在这里插入图片描述

  • 确认库版本:

如果库文件安装了多个版本,你可能还想要确认安装的版本是否是你需要的版本。这通常可以通过检查文件名中的版本号来完成,或者通过运行某些工具(如 ldd 或程序本身)来查看它们链接到的库版本。

完成

以上都完成且正确后,则可以直接进入测试
在这里插入图片描述
在编译后面加上-lhpdf (库的名称也就是去掉lib和后缀—这里原名称为libhpdf.so)

直接编译完成在这里插入图片描述
./可执行程序即可生成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值