我们有一个任务来编译一个链接了SDL库的文件。文件本身不应该包含任何错误,因为几乎每个人都设法编译了它。我在Ubuntu 12.04上安装了SDL 1.2,命令如下:

sudo apt-get install libsdl1.2-dev
sudo apt-get install libsdl-image1.2-dev
sudo apt-get install libsdl-mixer1.2-dev
sudo apt-get install libsdl-ttf2.0-dev

我用以下命令编译它:
gcc -o sdl_introduction  sdl_introduction.c `sdl-config --cflags --libs`

我用的是GCC4.6.3
我得到了这个错误:
/usr/local/lib/libSDL.so: undefined reference to `_XGetRequest'
collect2: ld returned 1 exit status

是什么导致了这个问题?

最佳答案

我遇到了和你一样的问题,这是因为SDL库需要在ubuntu(或者linux)上连接其他库
我建议复制它:

gcc -o sdl_introduction  sdl_introduction.c -lX11 -pthread `sdl-config --cflags --libs`

注意添加的-lX11和-pthread。
编辑:
糟糕的是,我忘了必须在其他标志之后添加-lX11和-pthread。
导致:
gcc -o sdl_introduction  sdl_introduction.c `sdl-config --cflags --libs` -lX11 -pthread

09-15 15:10