ошибка при загрузке общих библиотек libSDL-1.2.so.0

18

Я пытаюсь установить ioquake на свой сервер Ubuntu.

Когда я пытаюсь запустить его, я получаю это сообщение:

# ./ioquake3
./ioquake3.x86_64: error while loading shared libraries: libSDL-1.2.so.0: cannot open shared object file: No such file or directory

Я думал, что у меня все работает правильно, вот где libSDL:

# cd /usr/lib64
# /usr/lib64# ls -l
total 2308
lrwxrwxrwx 1 root root      15 Oct 15 00:25 libSDL-1.1.so.0 -> libSDL-1.2.so.0
lrwxrwxrwx 1 root root      20 Oct 15 00:25 libSDL-1.2.so.0 -> libSDL-1.2.so.0.11.4
-rwxr-xr-x 1 root root 2358903 Jan 19  2012 libSDL-1.2.so.0.11.4

И мой путь:

# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib64

Что я делаю неправильно?

ErocM
источник
3
Я думаю, что это сообщение от libSDL, а не о libSDL. Беги strace ./ioquake.x86_64. Это покажет все системные вызовы (занимает больше времени для выполнения). Он покажет, какая попытка открыть какой файл не удастся.
января
Я установил трассировку. Когда я запускаю это прямо, я получаю помощь. Когда я запускаю strace ./ioquake.x86_64, как вы предложили, я получаю команду не найдена. У меня болит голова :(
ErocM
Я установил Strace *
ErocM
В FAQ по OpenArena это сообщение появляется, когда libSDL не установлен, поэтому я не думаю, что оно пришло из этого. Не лучшая идея, но просто чтобы быть уверенным, вы пытались переименовать libSDL-1.2.so.0.11.4 в libSDL-1.2.so.0?
NorTicUs
даже если первое сработало для вас: пожалуйста, пометьте второе (23 возражения) как ответ, так как это действительно правильно для 99% людей.
Tatsu

Ответы:

10

Попробуйте следующее в терминале:

sudo apt-get update

с последующим

sudo apt-get install --reinstall libsdl1.2debian

Опубликуйте сообщения об ошибках, которые вы можете увидеть

анонимное
источник
27

Это сработало для меня:

sudo apt-get install libsdl1.2debian:i386

Joril
источник
1
это лучший ответ, он должен быть помечен как ответ.
Tatsu
2

Я знаю, что это год с опозданием. Но это должно исправить это:

dpkg --add-architecture i386
sudo apt-get install libsdl1.2debian

Проблема в том, что вы запускаете программу, скомпилированную для 32-битной архитектуры с 64-битными библиотеками.

Douther
источник
4
В качестве альтернативыsudo apt-get install libsdl1.2debian:i386
Джорил
1
@Joril Я думаю, что ваш комментарий должен быть ответом сам по себе
Alter Lagos
1
sudo apt-get install libsdl1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev
Jagadeesh
источник
3
Можете ли вы дать какое-то объяснение, в чем заключается проблема и как ее можно решить с помощью запуска вышеуказанной команды?
Мостафа Ахангарха
фактически пользовательские приложения используют приведенный выше порядок библиотек для выгрузки текста или изображений в окно SDL
jagadeesh
Я имею в виду включить объяснение в ответ. Тем не менее, я думаю, что этого объяснения недостаточно.
Мостафа Ахангарха