Я недавно начал играть вокруг с SDL, после некоторых учебных руководств онлайн. Я получил движение программы базового теста, и оно скомпилировало прекрасный, и оно хорошо работало до недавнего времени. Запуск приблизительно два дня назад, попытка выполнить двоичный файл (Тот же двоичный файл, не перекомпилированный), бросают следующую ошибку:
./sdltest: symbol lookup error: /usr/local/lib/libSDL-1.2.so.0: undefined symbol: _XGetRequest
Я довольно уверен, что не установил или удалил что-либо, так как программа прекратила работать. Я работаю 12.10 (Были прежде, чем я получил эту ошибку, таким образом, я вполне уверен, это не 12,10 ошибок), и я компилировал со следующими командами (Извлеченный из моего make-файла):
g++ -c -o main.o main.cpp
g++ -c -o CApp.o CApp.cpp
g++ main.o CApp.o -o sdltest -lSDL
У кого-либо есть какая-либо идея, что пошло не так, как надо, и что я смог делать для фиксации ее?
Все еще не уверен, почему это происходило с SDL1.2, но я подозреваю, что это, вероятно, связано со следующим:
Я удалил SDL1.2 и загрузил SDL2. Оказывается, что обновление 2012 года для X11 добавило динамический символ для _XGetRequest, что и стало причиной моей проблемы в SDL2. Чтобы решить эту проблему, я скачал и установил SDL2 из официального репозитория Mercurial, а не из менеджера пакетов Ubuntu.
Вы можете найти этот ответ на основе Slackware полезным на похожий вопрос. Это было решено.