说明
想在 ubuntu 下源码方式编译 SDL2,生成 SDL2 的 lib 库,静态库与动态共享库,release 版本
- 编译环境: ubuntu 20.04
- SDL 版本:当前 SDL github 最新版本,
SDL2分支
获取 SDL2 源码
-
SDL 的官方网站 https://www.libsdl.org/
-
通过 SDL 的官方网站,了解到获取 SDL 的源码,可以通过 github
git clone https://github.com/libsdl-org/SDL.git
- 由于当前 SDL 的主线(master 分支)为 SDL3,因此可以切换 git 分支到
SDL2
git checkout SDL2
cmake 编译
- 切换 SDL git 仓库到 SDL2 分支后,创建一个编译目录,用于存放编译文件,比如在 SDL 目录下,创建一个
sdl2_build目录
bash
cd SDL
mkdir sdl2_build
cd sdl2_build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/install ..
make -j8
make install
-
-DCMAKE_BUILD_TYPE=Release表示编译Release版本的 SDL2 lib 库,否则 Debug 版本的 SDL2 库会很大。 -
-DCMAKE_INSTALL_PREFIX=$PWD/install表示 lib 的安装路径,为当前路径下的install目录,设置安装目录,可以获取【干净】的 lib 产物目录,而不是默认直接安装到系统的目录下。 -
..表示上一级是 SDL 源码的目录,因为当前执行 cmake 的目录是SDL/sdl2_build
查看 SDL2 编译产物
-
执行
make install后, SDL2 编译的产物(lib 库、头文件等),放在了制定的安装目录下

-
SDL2 lib 库编译完成
小结
-
在 ubuntu 下编译 SDL2 库还是挺方便的,当然可以直接使用
sudo apt install libsdl2-dev的方式安装 SDL2 库。 -
SDL2 库可以用于 ubuntu 下 LVGL 的图形显示【驱动】部分