加载共享库时出错

use*_*811 17 shared shared-libraries

我正在使用g ++编译器在Ubuntu上运行eclipse,我正在尝试运行一个使用xerces的示例程序.

构建没有产生任何错误,但是当我试图运行程序时,我会收到此错误:

error while loading shared libraries: libxerces-c-3.1.so: cannot open shared object file: No such file or directory

libxerces-c-3.1.so/opt/lib我在eclipse中作为库包含的目录中.我检查文件夹时文件就在那里.当我执行时echo $LD_LIBRARY_PATH,/opt/lib也列出了.

问题所在的任何想法?谢谢.

一个ldd libxerces-c-3.1.so命令产生以下输出:

linux-vdso.so.1 =>  (0x00007fffeafff000)
libnsl.so.1 => /lib/libnsl.so.1 (0x00007fa3d2b83000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007fa3d2966000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007fa3d265f000)
libm.so.6 => /lib/libm.so.6 (0x00007fa3d23dc000)
libc.so.6 => /lib/libc.so.6 (0x00007fa3d2059000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007fa3d1e42000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa3d337d000)
Run Code Online (Sandbox Code Playgroud)

小智 25

尝试ldconfig以root身份运行,看看它是否解决了问题.

  • 有人可以解释为什么这有效吗? (10认同)
  • 我试过运行`sudo ldconfig`但它仍然无效 (3认同)

use*_*811 3

我将所有库文件从 /opt/lib 复制到 /usr/lib 中,程序现在可以运行了。感谢您的回复。