Я недавно установил бесплатную пробную версию 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.
Вы можете не иметь дело с LD_LIBRARY_PATH
поведение, но вместо этого характеристика библиотеки, которую вы тестируете.
Вот цитата со страницы, на которую вы указали ссылку:
В примерах кода ожидается, что ключ активации будет иметь имя mjkey.txt и находиться в том же каталоге, что и исполняемый файл, но это также можно изменить.
Если вы не сделали все возможное, чтобы изменить это поведение по умолчанию, то поведение, которое вы видите, кажется довольно совместимым с отмеченной политикой.
Других решений пока нет …