我已经完成了 OpenSceneGraph 的安装说明,包括从源代码安装 OpenThreads。但是,osgviewer 无法找到运行所需的文件。
$ /usr/local/bin/osgviewer
/usr/local/bin/osgviewer: error while loading shared libraries: libOpenThreads.so.21: cannot open shared object file: No such file or directory
$ ls -l /usr/local/lib64 | grep libOpenThreads
lrwxrwxrwx. 1 root root 20 Jul 13 16:55 libOpenThreads.so -> libOpenThreads.so.20
lrwxrwxrwx. 1 root root 23 Jul 13 16:55 libOpenThreads.so.20 -> libOpenThreads.so.3.3.0
lrwxrwxrwx. 1 root root 23 Jul 13 15:12 libOpenThreads.so.21 -> libOpenThreads.so.3.3.1
-rwxr-xr-x. 1 root root 49688 Jul 13 16:55 libOpenThreads.so.3.3.0
-rwxr-xr-x. 1 root root 44464 Jul 13 02:59 libOpenThreads.so.3.3.1
有没有办法确定这个程序在哪里寻找库,以便我可以创建符号链接?它是否与路径类 envar 绑定?
答案1
查看库搜索路径中有哪些目录。
ldconfig -v 2>/dev/null | grep -v ^$'\t'
最有可能的/usr/lib已位于库搜索路径中。
然后创建一个符号链接。
cp -s /usr/local/lib64/libOpenThreads.so.21 /usr/lib
如果你想添加/usr/本地/lib64到库搜索路径,将其添加到/etc/ld.conf.so然后运行ldconfig。