SDL源码编译安装
最清晰、最稳妥、一步不差 的“从源码编译安装 SDL(SDL2)”教程,包括:
- SDL 官方源码下载
./configure/cmake两种编译方式- 编译常见报错
- 系统库安装位置
- CMake + Makefile 如何引用你编译好的 SDL2
- SDL_image / SDL_ttf / SDL_mixer 的源码安装方式
- 如何卸载/更新你自己编译的 SDL2
可完美用于 Linux 桌面/嵌入式/树莓派等。
🔵 一、下载 SDL2 源码(官方)
官网:
https://github.com/libsdl-org/SDL/releases
选择最新版本(例如 SDL2-2.30.x):
1 | wget https://github.com/libsdl-org/SDL/releases/download/release-2.30.6/SDL2-2.30.6.tar.gz |
🔵 二、方式 1:传统 Autotools 编译(最通用)
进入源码后:
1 | ./configure --prefix=/usr/local |
完成后库会安装到:
1 | /usr/local/lib/libSDL2.so |
更新库缓存:
1 | sudo ldconfig |
检测是否成功:
1 | pkg-config --modversion sdl2 |
看到版本号就是成功。
🔵 三、方式 2:使用 CMake 编译(新版本推荐,已实测)
SDL2 新版默认支持 CMake:
1 | mkdir build && cd build |
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 | find_package(SDL2 REQUIRED) |
方式 4:Makefile
1 | CFLAGS += `sdl2-config --cflags` |
🔵 五、SDL_image / SDL_ttf / SDL_mixer 源码安装(和 SDL 方法一样)
1)SDL_image
1 | wget https://github.com/libsdl-org/SDL_image/releases/download/release-2.8.2/SDL2_image-2.8.2.tar.gz |
2)SDL_ttf(如果需要文字渲染)
1 | ./configure --prefix=/usr/local |
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 | sudo apt install build-essential pkg-config \ |
装完后 SDL 基本不会报错了。
🔵 七、如何卸载从源码安装的 SDL2
因为是 make install 安装的,可以执行:
1 | sudo make uninstall |
如果目录已经删掉,可以直接清理 /usr/local:
1 | /usr/local/lib/libSDL2* |