Ошибка при загрузке общих библиотек: libopenal.so.1 (игра 'pacapong' в Ubuntu 14.10)

Я скачал игру pacapong для Linux и попытался запустить исполняемый файл, что приводит к ошибке:

$ ./runner 

./runner: error while loading shared libraries: libopenal.so.1: 
cannot open shared object file: No such file or directory

Очевидно, есть необходимость загрузки libopenal.so.1:

$ objdump -p ./runner |grep libopenal.so.1

NEEDED libopenal.so.1

В /usr/lib/x86_64-linux-gnu лежит libopenal.so.1, и я могу сделать:

$ ldd libopenal.so.1
linux-vdso.so.1 =>  (0x00007fffcdbbb000)

...

Я не буду запускать этот исполняемый файл (./runner) от имени пользователя root (на случай, если эта проблема может быть связана с недостаточными правами, чего я не предполагаю).

Итак, что я могу попробовать еще?

11
задан 12 April 2015 в 23:54

3 ответа

Ошибка состоит в том, потому что это - 32-разрядная игра, которую Вы пытаетесь выполнить в 64-разрядном Linux. Я работал через ошибки путем гугления сообщений об ошибках для выяснения, какие пакеты я пропускал. Я закончил тем, что установил следующие пакеты, чтобы заставить игру работать:

sudo apt-get install libxxf86vm1:i386 libglu1-mesa:i386 libopenal1:i386 libssl1.0.0:i386
11
ответ дан 12 April 2015 в 23:54

В будущем запуск ldd на ./runner сообщит вам, какие библиотеки требуются, если они отсутствуют, И являются ли они i386 или 64-битными.

$ ldd на ./runner

/undertale/game$ ldd ./runner

linux-gate.so.1 (0xf7798000)

libgtk3-nocsd.so.0 => /usr/lib /i386-linux-gnu/libgtk3-nocsd.so.0 (0xf7759000)

libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf75d3000)

. ..

libXrandr.so.2 => не найдено

libbsd.so.0 => /lib/i386-linux-gnu/libbsd.so.0 (0xf6b41000)

libXau.so.6 = > /usr/lib/i386-linux-gnu/libXau.so.6 (0xf6b3d000)

libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf6b36000)

Примечание. Мне по-прежнему не хватает xrandr для i386. Так что это пока не сработает.

$ ./runner

./runner: ошибка при загрузке общих библиотек: >libXrandr.so.2: невозможно открыть общий объектный файл: нет такого файла или каталога

1
ответ дан 28 March 2020 в 05:44

Используйте инструмент apt-file, чтобы узнать, какой пакет предоставляет требуемую библиотеку. Если у вас нет инструмента поиска, сначала установите его

sudo apt-get install apt-file

Если вы собираетесь использовать инструмент apt-file впервые, вы должны сначала обновить кеш

apt-file update # it may require root privileges. If so just use sudo

Теперь выполните поиск в библиотеке:

apt-file search libXrandr.so.2
libxrandr2: /usr/lib/x86_64-linux-gnu/libXrandr.so.2
libxrandr2: /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0

] Теперь установите необходимый 32-битный пакет

sudo apt-get install libxrandr2:i386
0
ответ дан 2 November 2020 в 18:00

Другие вопросы по тегам:

Похожие вопросы: