Undefined Symbol Error when running SDL program
I've recently started playing around with SDL, following some tutorials online. I got a basic test program going, and it compiled fine, and it ran fine until recently. Starting about two days ago, trying to run the binary (The same binary, not re-compiled) throws the following error:
./sdltest: symbol lookup error: /usr/local/lib/libSDL-1.2.so.0: undefined symbol: _XGetRequestI'm fairly confident I didn't install or remove anything since the program stopped working. I'm running 12.10 (Have been since before I got this error, so I'm pretty sure it's not a 12.10 bug), and I've been compiling with the following commands (Extracted from my makefile):
g++ -c -o main.o main.cpp
g++ -c -o CApp.o CApp.cpp
g++ main.o CApp.o -o sdltest -lSDLDoes anybody have any idea what went wrong, and what I might be able to do to fix it?
2 Answers
Still not sure why this was happening with SDL1.2, but I suspect it's probably related to the below:
I removed SDL1.2 and downloaded SDL2 instead. It turns out that a 2012 update to X11 added a dynamic symbol for _XGetRequest, which is what was causing my problem in SDL2. To fix the issue, I downloaded and installed SDL2 from the official Mercurial repository, rather than from the Ubuntu package manager.
you may find this Slackware based response helpful to a similar question. It was solved.
1