Building SDL3 Static Library for Ubuntu (GCC, CMake & Ninja) Сборка статической библиотеки SDL3 для Ubuntu (GCC, CMake и Ninja)
A guide to compiling SDL3 source code into a static library (libSDL3.a) on Ubuntu for Desktop or Headless Server setups using CMake and GCC. Руководство по компиляции исходного кода SDL3 в статическую библиотеку (libSDL3.a) в Ubuntu для десктопа или headless-сервера с помощью CMake и GCC.
Step 1: Install Dependencies Шаг 1: Установка зависимостей
Select your target environment to view the required system packages: Выберите вашу целевую среду для просмотра необходимых системных пакетов:
If you are compiling for a desktop environment or WSL and need display and audio support, install the development headers required for X11, Wayland, and audio backends: Если вы выполняете сборку для десктопного окружения или WSL и вам нужна поддержка видео и аудио, установите заголовочные файлы для X11, Wayland и аудиосистем:
sudo apt update && sudo apt install -y \
libasound2-dev libpulse-dev libaudio-dev \
libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxi-dev libxinerama-dev \
libxss-dev libxtst-dev libxxf86vm-dev \
libwayland-dev libxkbcommon-dev libegl1-mesa-dev libgl1-mesa-dev libgbm-dev libdrm-dev
For a headless server build (e.g. running background workers or dedicated game servers), graphics and audio headers are not required. Only essential build tools are needed: Для сборки на headless-сервере (например, для фоновых сервисов или выделенных игровых серверов) графические и аудио библиотеки не требуются. Нужны только базовые инструменты сборки:
sudo apt update && sudo apt install -y build-essential cmake ninja-build wget
Step 2: Download SDL3 Source Code Шаг 2: Скачивание исходного кода SDL3
Go to the official GitHub releases page to check the latest available release assets: Перейдите на официальную страницу релизов GitHub, чтобы посмотреть доступные архивы релизов:
View the latest SDL3 Release Смотреть последний релиз SDL3
Download and extract the release archive using wget:
Скачайте и распакуйте архив релиза с помощью wget:
cd ~
wget https://github.com/libsdl-org/SDL/releases/download/release-3.4.16/SDL3-3.4.16.tar.gz -O SDL3-3.4.16.tar.gz
tar -xzf SDL3-3.4.16.tar.gz
cd SDL3-3.4.16
Step 3: Create the Build Script Шаг 3: Создание скрипта сборки
In the root directory of the extracted SDL3 source folder, create a script named build-ubuntu-static.sh with the flags appropriate for your target deployment:
В корневой директории извлеченного исходного кода SDL3 создайте файл build-ubuntu-static.sh с флагами, подходящими для вашей целевой среды:
#!/usr/bin/env bash
set -e
BUILD_DIR="build-ubuntu-static"
rm -rf "$BUILD_DIR"
mkdir -p "$BUILD_DIR"
cd "$BUILD_DIR"
cmake .. \
-GNinja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="$HOME/libs/sdl3-3.4.16-ubuntu" \
-DBUILD_SHARED_LIBS=OFF \
-DSDL_SHARED=OFF \
-DSDL_STATIC=ON \
-DSDL_TESTS=OFF \
-DSDL_EXAMPLES=OFF
cmake --build . --config Release --parallel --target install
#!/usr/bin/env bash
set -e
BUILD_DIR="build-ubuntu-static"
rm -rf "$BUILD_DIR"
mkdir -p "$BUILD_DIR"
cd "$BUILD_DIR"
cmake .. \
-GNinja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="$HOME/libs/sdl3-3.4.16-ubuntu" \
-DBUILD_SHARED_LIBS=OFF \
-DSDL_SHARED=OFF \
-DSDL_STATIC=ON \
-DSDL_TESTS=OFF \
-DSDL_EXAMPLES=OFF \
-DSDL_X11=OFF \
-DSDL_WAYLAND=OFF \
-DSDL_OFFSCREEN=ON \
-DSDL_UNIX_CONSOLE_BUILD=ON
cmake --build . --config Release --parallel --target install
CMAKE_INSTALL_PREFIX matches your target installation directory. The SDL_UNIX_CONSOLE_BUILD=ON flag tells CMake that a headless setup without X11 or Wayland is intentional.
Убедитесь, что переменная пути CMAKE_INSTALL_PREFIX соответствует целевой директории установки. Флаг SDL_UNIX_CONSOLE_BUILD=ON сообщает CMake, что сборка без X11 или Wayland является намеренной.
Step 4: Run, Compile, and Clean Up Шаг 4: Запуск, сборка и очистка
Grant execution permissions to the script and run it in your terminal: Сделайте скрипт исполняемым и запустите его в терминале:
chmod +x build-ubuntu-static.sh
./build-ubuntu-static.sh
Upon completion, your static library (libSDL3.a) along with header files will be installed in your specified CMAKE_INSTALL_PREFIX directory.
После успешного завершения собранная статическая библиотека (libSDL3.a) вместе с заголовочными файлами будет установлена по пути, указанному в CMAKE_INSTALL_PREFIX.
Once installed, you can safely remove the temporary source directory and the downloaded archive: После установки вы можете безопасно удалить временную директорию с исходным кодом и скачанный архив:
cd ~ && rm -rf ~/SDL3-3.4.16 ~/SDL3-3.4.16.tar.gz
Step 5: Next Steps Шаг 5: Следующие шаги
Now that you have compiled and installed the SDL3 static library, you can integrate it into your C++ projects using CMake: Теперь, когда вы собрали и установили статическую библиотеку SDL3, вы можете интегрировать её в свои C++ проекты с помощью CMake:
Support My Work Поддержать проект
If these tutorials helped you, consider buying me a coffee! Если эти туториалы вам помогли, вы можете поддержать автора.
Sberbank (Russia only) Сбербанк (только для РФ)
Direct transfer via phone number (Russia only) Перевод по номеру телефона (только для РФ)
USDT TRC20
Support via Cryptocurrency Поддержка криптовалютой