Понимание LD_LIBRARY_PATH и отсутствующих общих библиотек (для Mujoco)

Я недавно установил бесплатную пробную версию Mujoco 1,31. (Этот вопрос более общий, чем этот; Mujoco — это коммерческая физическая библиотека, в которой нужно получить компьютерную информацию mjkey.txt файл, чтобы запустить его.) Я наблюдал некоторое поведение с $LD_LIBRARY_PATH что меня озадачивает

Вот каталог соответствующих вещей. Я внутри каталога /home/daniel/mjpro131, mjkey.txt текст появляется в двух местах, так как я должен был иметь копию в bin каталог для запуска кода.

$ ls
bin  doc  include  LICENSE.txt  mjkey.txt  model  sample
$ ls -lh bin/
total 2.1M
-rwxrwxr-x 1 daniel daniel  14K Apr 23  2016 compile
-rwxr-xr-x 1 daniel daniel 123K Apr 23  2016 libglfw.so.3
-rwxrwxr-x 1 daniel daniel 1.8M Apr 23  2016 libmujoco131.so
-rw-rw-r-- 1 daniel daniel  876 Apr  3 14:52 mjkey.txt
-rw-rw-r-- 1 daniel daniel  156 Apr  3 14:52 MUJOCO_LOG.TXT
-rwxrwxr-x 1 daniel daniel  30K Apr 23  2016 simulate
-rwxrwxr-x 1 daniel daniel  51K Apr 23  2016 test
$ ls -lh model/
total 12K
-rwxr-xr-x 1 daniel daniel 9.4K Apr 23  2016 humanoid.xml

инструкции по началу работы скажем попробовать код симулятора. (Эти инструкции предназначены для версии 1.40, но все еще должны работать для 1.31.) Я попытался выполнить следующие команды, но это не работает:

$ ./bin/simulate model/humanoid.xml
./bin/simulate: error while loading shared libraries: ../bin/libmujoco131.so: cannot open shared object file: No such file or directory

Еще когда я иду внутри bin каталог, код симулятора работает:

$ cd bin/
$ ./simulate ../model/humanoid.xml
MuJoCo Pro library version 1.31

Это работает, и я был бы рад продолжить с этим, но я действительно хочу понять, почему моя первая попытка не удалась. Глядя на StackOverflow, я вижу, что ошибка, которую я получил, вероятно, связана с LD_LIBRARY_PATH переменная. Вот:

$ echo $LD_LIBRARY_PATH
/usr/local/cuda-8.0/lib64:/home/daniel/mjpro131/bin:/home/daniel/mjpro131
$ pwd
/home/daniel/mjpro131
$ ls
bin  doc  include  LICENSE.txt  mjkey.txt  model  sample

Вот соответствующие строки моего .bashrc:

export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/daniel/mjpro131/bin:/home/daniel/mjpro131

И я позаботился об этом, прежде чем пытаться запустить код симулятора. Кроме того, прежде чем пытаться запустить симулятор, я побежал sudo ldconfig что было рекомендовано некоторыми другими вопросами StackOverflow. К сожалению, я все еще не могу запустить симулятор Mujoco, когда я нахожусь в каталоге верхнего уровня mjpro131,

Вопрос: я думал LD_LIBRARY_PATH должен быть в состоянии найти /home/daniel/mjpro131/bin и любая библиотека внутри него. Тем не менее, это не так, потому что не может найти libmujoco131.so, Я что-то упускаю здесь очевидное?

Я использую Ubuntu 16.04.

0

Решение

Вы можете не иметь дело с LD_LIBRARY_PATH поведение, но вместо этого характеристика библиотеки, которую вы тестируете.

Вот цитата со страницы, на которую вы указали ссылку:

В примерах кода ожидается, что ключ активации будет иметь имя mjkey.txt и находиться в том же каталоге, что и исполняемый файл, но это также можно изменить.

Если вы не сделали все возможное, чтобы изменить это поведение по умолчанию, то поведение, которое вы видите, кажется довольно совместимым с отмеченной политикой.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector