Я выполнил инструкции по установке 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 ответ1

2

Чтобы увидеть, какие каталоги находятся в пути поиска библиотеки.

ldconfig -v 2>/dev/null | grep -v ^$'\t'

Скорее всего /usr/lib уже находится в пути поиска библиотеки.

Затем создайте символическую ссылку.

cp -s /usr/local/lib64/libOpenThreads.so.21 /usr/lib

Если вы хотите добавить /usr/local/lib64 в путь поиска библиотеки, добавьте его в /etc/ld.conf.so и запустите ldconfig.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .