开发者

Linux程序运行找不到动态库.so文件的解决

目录
  • linux程序运行找不到动态库.so文件的三种解决
    • 方法一:QEhIKxRtM添加环境变量
    • 方法二:复制so文件到lib路径
    • 方法三:(推荐)添加ldconfig寻找路径
  • 总结

    Linux程序运行找不到动态库.so文件的三种解决

    方法一:添加环境变量

    子招数1. 

    添加当前用户当前终端的环境变量-临时

    export LD_LIBRARY_PATH=/home/czd/...  #.so file path

    子招数2.

    添加当前用户的环境变量

    修改~/.bashrc文件,在其末尾,添加环境变量

    vim ~/.bashrc
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/czd/...  #.so file path
    

    使其生效,

    source ~/.bashrc

    如不能生效,请重启

    子招数3.

    添加所有用户QEhIKxRtM的环境变量

    修改profile文件,在其末尾添加环境变量

    vim /etc/profile
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/czd/...  #.so file path
    

    使其生效

    source /etc/profile

    如不能生效,请重启

    方法二:复制so文件到lib路径

    linux系统的sphpo库一般存储与“/usr/lib/”路径中,编程客栈可将动态库复制到该路径中。

    sudo cp liblibtest.so /usr/lib/

    即时生效

    方法三:(推荐)添加ldconfig寻找路径

    步骤1.

    编辑链接配置文件

    viandroidm /etc/ld.so.conf

    步骤2.

    确认内容是否为如下,不是则修改为如下:保存并退出

    include /etc/ld.so.conf.d/*.conf

    步骤3.

    进入目录内,创建*.conf文件,文件名随意,扩展名必须为.conf

    cd /etc/ld.so.conf.d/
    vim libmy.conf 
    

    步骤4.

    在文件内部,添加so的路径,保存并退出

    /home/czd/eclipse-workspacee/calllib/Debug

    步骤5.

    执行命令时期生效

    sudo ldconfig

    程序在运行时寻找so库就会到添加的目录中寻找。

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新运维

    运维排行榜