SDL源码编译安装

最清晰、最稳妥、一步不差 的“从源码编译安装 SDL(SDL2)”教程,包括:

  1. SDL 官方源码下载
  2. ./configure / cmake 两种编译方式
  3. 编译常见报错
  4. 系统库安装位置
  5. CMake + Makefile 如何引用你编译好的 SDL2
  6. SDL_image / SDL_ttf / SDL_mixer 的源码安装方式
  7. 如何卸载/更新你自己编译的 SDL2

可完美用于 Linux 桌面/嵌入式/树莓派等。


🔵 一、下载 SDL2 源码(官方)

官网:
https://github.com/libsdl-org/SDL/releases

选择最新版本(例如 SDL2-2.30.x):

1
2
3
wget https://github.com/libsdl-org/SDL/releases/download/release-2.30.6/SDL2-2.30.6.tar.gz
tar xf SDL2-2.30.6.tar.gz
cd SDL2-2.30.6

🔵 二、方式 1:传统 Autotools 编译(最通用)

进入源码后:

1
2
3
./configure --prefix=/usr/local
make -j$(nproc)
sudo make install

完成后库会安装到:

1
2
/usr/local/lib/libSDL2.so
/usr/local/include/SDL2/

更新库缓存:

1
sudo ldconfig

检测是否成功:

1
pkg-config --modversion sdl2

看到版本号就是成功。


🔵 三、方式 2:使用 CMake 编译(新版本推荐,已实测)

SDL2 新版默认支持 CMake:

1
2
3
4
5
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
make -j$(nproc)
sudo make install
sudo ldconfig

CMake 的版本更干净,也方便 IDE 使用。


🔵 四、如何使用你从源码安装的 SDL2?

方式 1:sdl2-config

目前系统已经有了:

1
/usr/local/bin/sdl2-config

编译程序:

1
gcc main.c `sdl2-config --cflags --libs`

方式 2:pkg-config(CMake / autotools 常用)

1
pkg-config --cflags --libs sdl2

方式 3:CMakeLists.txt

1
2
3
find_package(SDL2 REQUIRED)
include_directories(${SDL2_INCLUDE_DIRS})
target_link_libraries(your_target ${SDL2_LIBRARIES})

方式 4:Makefile

1
2
3
4
5
CFLAGS += `sdl2-config --cflags`
LDFLAGS += `sdl2-config --libs`

all:
gcc main.c -o app $(CFLAGS) $(LDFLAGS)

🔵 五、SDL_image / SDL_ttf / SDL_mixer 源码安装(和 SDL 方法一样)

1)SDL_image

1
2
3
4
5
6
7
8
wget https://github.com/libsdl-org/SDL_image/releases/download/release-2.8.2/SDL2_image-2.8.2.tar.gz
tar xf SDL2_image-2.8.2.tar.gz
cd SDL2_image-2.8.2

./configure --prefix=/usr/local
make -j$(nproc)
sudo make install
sudo ldconfig

2)SDL_ttf(如果需要文字渲染)

1
2
3
4
./configure --prefix=/usr/local
make -j$(nproc)
sudo make install
sudo ldconfig

3)SDL_mixer(音频支持)

同理。


🔵 六、常见编译失败原因 & 解决

错误 原因 解决
找不到 X11 缺少依赖 sudo apt install libx11-dev libxext-dev libxrandr-dev libxrender-dev libxfixes-dev
找不到 ALSA 未安装音频库 sudo apt install libasound2-dev
找不到 wayland 你选择了支持 wayland sudo apt install libwayland-dev wayland-protocols
configure 报错找不到 pkg-config 系统缺少 pkg-config sudo apt install pkg-config
链接时报 undefined reference to SDL_* 未使用 sdl2-config 加上 sdl2-config --libs

最完整依赖:

1
2
3
4
5
6
sudo apt install build-essential pkg-config \
libasound2-dev libpulse-dev \
libx11-dev libxext-dev libxrandr-dev libxrender-dev libxfixes-dev \
libxcursor-dev libxi-dev libxinerama-dev \
libwayland-dev wayland-protocols \
libdbus-1-dev libudev-dev

装完后 SDL 基本不会报错了。


🔵 七、如何卸载从源码安装的 SDL2

因为是 make install 安装的,可以执行:

1
sudo make uninstall

如果目录已经删掉,可以直接清理 /usr/local

1
2
3
/usr/local/lib/libSDL2*
/usr/local/include/SDL2
/usr/local/bin/sdl2-config