• ./popins2: error while loading shared libraries: libbifrost.so: cannot open shared object file: No such file or directory


    001、问题

    root@ubuntu01:/home/software/PopIns2/PopIns2# ./popins2
    ./popins2: error while loading shared libraries: libbifrost.so: cannot open shared object file: No such file or directory

    002、问题原因

    分析原因:ld提示找不到库文件,而库文件就在当前目录中。

    链接器ld默认的目录是/lib和/usr/lib,如果放在其他路径也可以,需要让ld知道库文件在哪里。

    003、查找该文件

    root@ubuntu01:/home/software/PopIns2/PopIns2# find / -name "libbifrost.so"
    /usr/local/lib/libbifrost.so
    /home/software/bifrost/build/src/libbifrost.so
    find: ‘/run/user/1000/doc’: Permission denied
    find: ‘/run/user/1000/gvfs’: Permission denied
    find: ‘/run/user/127/doc’: Permission denied
    find: ‘/run/user/127/gvfs’: Permission denied

    004、解决方法

    方法1:

    编辑/etc/ld.so.conf文件,在新的一行中加入库文件所在目录;

    运行ldconfig,以更新/etc/ld.so.cache文件;
    方法2:

    在/etc/ld.so.conf.d/目录下新建任何以.conf为后缀的文件,在该文件中加入库文件所在的目录;

    运行ldconfig,以更新/etc/ld.so.cache文件;

    本人觉得第二种办法更为方便,对于原系统的改动最小。因为/etc/ld.so.conf文件的内容是include /etc/ld.so.conf.d/*.conf

    root@ubuntu01:/home/software/PopIns2/PopIns2# echo "/home/software/bifrost/build/src/libbifrost.so" > /etc/ld.so.conf.d/bifrost.so
    root@ubuntu01:/home/software/PopIns2/PopIns2# ldconfig         ## 更新库文件

    005、测试

    root@ubuntu01:/home/software/PopIns2/PopIns2# ./popins2
  • 相关阅读:
    闭包的应用(转载)
    智能社讲解js基础
    HTML5 Geolocation
    Redis主从配置
    Redis序列化配置
    Ribbon负载均衡原理学习记录
    2059 mysql
    Cache缓存
    rabbitmq(三)-Direct交换器
    rabbitmq(二)原理
  • 原文地址:https://www.cnblogs.com/liujiaxin2018/p/16701063.html
Copyright © 2020-2023  润新知