Linux - 找不到共享库

Linux - cannot find shared library

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

如果一切正常,然后发生磁盘崩溃。

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

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

"error while loading shared libraries: libdvbv5.so.0: cannot open shared object file: No such file or directory"

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

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 当 link 编辑的是 libdvbv5.so 并且这是直接 link 到 libdvbv5.so.0.0.0.

为此抓耳挠腮 - 这是怎么回事?

已修复 - 愚蠢 - 安装 libdvbv5 后忘记 运行 ldconfig 重建缓存。转到 libdir,例如 /usr/local/lib

/usr/local/lib$ sudo ldconfig