加载共享库时出错:libpoppler.so.58:无法打开共享对象文件

use*_*258 8 linux ubuntu poppler path shared-libraries

我按照说明编译并安装了 poppler-0.39.0。默认情况下,头文件进入 int\usr\local\include而 lib 文件进入\usr\local\lib. pdftohtml 安装在\usr\local\bin.

现在当我尝试运行pdftohtml它时出现以下错误。

pdftohtml: error while loading shared libraries: libpoppler.so.58: cannot open shared object file: No such file or directory. 
Run Code Online (Sandbox Code Playgroud)

虽然libpoppler.so.58存在于\usr\local\lib. 请帮我。

blu*_*nox 9

我在 Ubuntu 18.04 上遇到了类似的问题。安装后我收到此错误:

error while loading shared libraries: libpoppler.so.90: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

原来它被安装到/usr/local/lib

Install the project...
-- Install configuration: "RelWithDebInfo"
-- Installing: /usr/local/lib/libpoppler.so.90.0.0
-- Installing: /usr/local/lib/libpoppler.so.90
-- Installing: /usr/local/lib/libpoppler.so
-- Installing: /usr/local/lib/pkgconfig/poppler.pc
-- Installing: /usr/local/lib/pkgconfig/poppler-splash.pc
-- Installing: /usr/local/lib/pkgconfig/poppler-qt5.pc
-- Installing: /usr/local/lib/pkgconfig/poppler-glib.pc
-- Installing: /usr/local/lib/pkgconfig/poppler-cairo.pc
-- Installing: /usr/local/lib/pkgconfig/poppler-cpp.pc
Run Code Online (Sandbox Code Playgroud)

但系统并没有在那里寻找。

要检查是否/usr/local/lib在要搜索的默认目录中,您可以查看/etc/ld.so.conf.d/libc.conf.

如果还没有,您可以添加: /usr/local/lib

就我而言,情况已经如此:

# libc default configuration
/usr/local/lib
Run Code Online (Sandbox Code Playgroud)

但是缓存/etc/ld.so.cache没有更新。

为此运行(作为root/ sudo

ldconfig
Run Code Online (Sandbox Code Playgroud)

为我解决了问题。希望这可能对某人有帮助!


小智 1

刚刚在 Amazon Linux 64 位框中显示了同样的错误消息。我猜 pdftotext 正在寻找 /usr/lib64/ 内的 libpoppler.so.58 但该库位于 /usr/lib

所以我运行了以下命令(作为超级用户):

$ cp /usr/lib/libpoppler.so.58.0.0 /usr/lib64

$ ldconfig

您可能需要替换目录才能适合您的情况。我不确定这是否是最正确的解决方法,但它确实有效。