【问题标题】:Ldd show different version of library on the same c++ executable between different Ubuntu machinesldd 在不同 Ubuntu 机器之间的同一 c++ 可执行文件上显示不同版本的库
【发布时间】:2017-12-04 12:06:27
【问题描述】:

我创建了一个需要 libboost_iostreams.so.1.63.0 库的 c++ 应用程序。在 Ubuntu 16.04 VM 中,我构建了库,我的可执行文件上的 ldd 命令给出了以下内容:

ldd ./c++_app | grep boost

libboost_iostreams.so.1.63.0 => /usr/local/lib/libboost_iostreams.so.1.63.0 (0x00007f7a52e62000)

然后我使用相关的共享库压缩应用程序,以便将其安装在未构建 boost 1.63 库的新 VM 上。
我在 /usr/bin 上安装 c++,在 /usr/share-data 中的文件夹 lib 上安装库,然后更新 /etc/ld.so.conf 以便它可以找到新库
然而,当我给:

 sudo ldconfig -p | grep boost

我明白了

 libboost_iostreams.so.1.63.0 (libc6,x86-64) => /usr/share/lib/libboost_iostreams.so.1.63.0

但是当我在 /usr/bin 中的二进制文件上给出 ldd 时,我得到了

ldd c++_app | grep boost
libboost_iostreams.so.1.62.0 => not found

我在这里做错了什么?

【问题讨论】:

    标签: c++ ubuntu-16.04 ldd


    【解决方案1】:

    试试export LD_LIBRARY_PATH=/usr/share/libThis 应该能帮到你

    【讨论】:

    • 我做到了,但同样的问题导致错误“加载共享库时:libboost_iostreams.so.1.62.0:无法打开共享对象文件:没有这样的文件或目录”当我尝试运行时我的应用
    猜你喜欢
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    • 2013-06-29
    • 2019-05-19
    • 2017-04-27
    • 2011-01-14
    • 2016-03-11
    • 2014-03-08
    相关资源
    最近更新 更多