admin 管理员组

文章数量: 1086019


2024年12月25日发(作者:网络编程代码大全)

linux找不到动态链接库.so文件的解决方法

如果使用自己手动生成的动态链接库.so文件,但是这个.so文件,

没有加入库文件搜索路劲中,程序运行时可能会出现找不到动态链接

库的情形。

可以通过ldd命名来查看可执行文件依赖的动态链接库,如下(其

中test为可执行程序):

如:ldd test

解决这个问题:

1.修改/etc/配置

(1)将.so文件路径的目录添加到/etc/

直接添加: sudo vim /etc/

然后在末尾新添加.so库路径

添加配置: 创建文件,里面加.so库路径,将该文件放

到/etc/.d目录下;

在/etc/文件中增加一行include .d/

(2)使得修改生效

sudo /sbin/ldconfig

2.通过编译选项 -wl,-rpath

-Wl选项告诉编译器将后面的参数传递给链接器

-rpath指定动态搜索的路径

3.设置 LD_LIBRARY_PATH

LD_LIBRARY_PATH环境变量主要是用于指定动态链接器(ld)查

找ELF可执行文件运行时所依赖的动态库(so)的路径,其内容是以

冒号分隔的路径列表。

ld链接器将优先在该变量设置的路径中查找,若未找到则在标准

库路径/lib和/usr/lib中继续搜索。

临时修改:export

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

永久修改:修改~/.bashrc或~/.bash_profile或系统级别的

/etc/profile

a. 在其中添加例如export

PATH=/opt/ActiveP/lib:$LD_LIBRARY_PATH

b. source .bashrc (Source命令也称为“点命令”,也就是一个

点符号(.)。source命令通常用于重新执行刚修改的初始化文件,使

之立即生效,而不必注销并重新登录)


本文标签: 路径 文件 动态 添加