【问题标题】:Linux - cannot find shared libraryLinux - 找不到共享库
【发布时间】:2016-05-16 13:45:23
【问题描述】:

使用 Code::Blocks (13.12) / g++ 在 Ubuntu 14.04 上使用 DVB V5 库创建一些测试代码。该库已按照下载中的说明进行下载、构建和安装。

一切正常,然后出现磁盘崩溃。

决定从头开始重新安装所有内容而不是使用备份,并再次下载 libdvbv5 源并重建它。一切似乎都很顺利。

从备份中替换了 Code::Blocks 测试项目并清理并重建了它,但是在调试或从命令行运行时......它现在说:

“加载共享库时出错:libdvbv5.so.0:无法打开共享对象文件:没有这样的文件或目录”

嗯,图书馆似乎在那里。 ls -l in /usr/local/lib 给出

lrwxrwxrwx 1 root root       17 May 14 21:34 libdvbv5.so ->     libdvbv5.so.0.0.0
lrwxrwxrwx 1 root root       17 May 14 21:34 libdvbv5.so.0 ->    libdvbv5.so.0.0.0
-rwxr-xr-x 1 root root   752569 May 14 21:34 libdvbv5.so.0.0.0

没有它,代码无论如何都不会构建,但确实如此。我必须承认我有点困惑,为什么它会抱怨 libdvbv5.so.0,而其中链接的是 libdvbv5.so,而这是与 libdvbv5.so.0.0.0 的直接链接。

为此抓狂——这是怎么回事?

【问题讨论】:

    标签: c++ linux g++ shared-libraries dvb


    【解决方案1】:

    修复它 - 愚蠢 - 在安装 libdvbv5 后忘记运行 ldconfig 来重建缓存。进入/usr/local/lib等libdir

    /usr/local/lib$ sudo ldconfig
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-12
      • 2014-06-13
      • 2016-06-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多