Building SDL3_ttf Static Library for Ubuntu (GCC, CMake & Ninja) Сборка статической библиотеки SDL3_ttf для Ubuntu (GCC, CMake и Ninja)
A guide to compiling SDL3_ttf source code into a static library (libSDL3_ttf.a) with FreeType support on Ubuntu. Руководство по компиляции исходного кода SDL3_ttf в статическую библиотеку (libSDL3_ttf.a) с поддержкой FreeType в Ubuntu.
Step 1: Install Build Dependencies Шаг 1: Установка зависимостей сборки
Ensure that wget and tar are installed on your system to download and extract release archives:
Убедитесь, что wget и tar установлены в вашей системе для скачивания и распаковки архивов релизов:
sudo apt update && sudo apt install -y wget tar
Step 2: Download SDL3_ttf Source Code Archive Шаг 2: Скачивание архива исходного кода SDL3_ttf
You can browse the official GitHub releases page to check the latest available release assets: Вы можете перейти на страницу релизов GitHub, чтобы посмотреть список доступных версий:
View SDL3_ttf Releases Смотреть релизы SDL3_ttf
Download and extract the source archive for version 3.2.2 using wget:
Скачайте и распакуйте архив с исходным кодом версии 3.2.2 с помощью wget:
cd ~
wget https://github.com/libsdl-org/SDL_ttf/releases/download/release-3.2.2/SDL3_ttf-3.2.2.tar.gz -O SDL3_ttf-3.2.2.tar.gz
tar -xzf SDL3_ttf-3.2.2.tar.gz
cd SDL3_ttf-3.2.2
Step 3: Create the Build Script Шаг 3: Создание скрипта сборки
In the root directory of the extracted SDL3_ttf source folder, create a script named build-ubuntu-static.sh with the following content:
В корневой директории извлеченного исходного кода SDL3_ttf создайте файл build-ubuntu-static.sh со следующим содержимым:
#!/usr/bin/env bash
set -e
FREETYPE_PATH="$HOME/libs/freetype-2.14.3-ubuntu"
BUILD_DIR="build-ubuntu-static"
rm -rf "$BUILD_DIR"
mkdir -p "$BUILD_DIR"
cd "$BUILD_DIR"
cmake .. \
-GNinja \
-DSDL3_DIR="$HOME/libs/sdl3-3.4.16-ubuntu/lib/cmake/SDL3" \
-DCMAKE_PREFIX_PATH="$FREETYPE_PATH" \
-DFREETYPE_INCLUDE_DIR_ft2build="$FREETYPE_PATH/include/freetype2" \
-DFREETYPE_INCLUDE_DIR_freetype2="$FREETYPE_PATH/include/freetype2" \
-DFREETYPE_LIBRARY="$FREETYPE_PATH/lib/libfreetype.a" \
-DBUILD_SHARED_LIBS=OFF \
-DSDLTTF_HARFBUZZ=OFF \
-DSDLTTF_SAMPLES=OFF \
-DSDLTTF_VENDORED=OFF \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="$HOME/libs/sdl3-ttf-3.2.2-ubuntu"
cmake --build . --config Release --parallel $(nproc) --target install
FREETYPE_PATH, SDL3_DIR, and CMAKE_INSTALL_PREFIX) match the target directories of your locally compiled static dependencies. Note that FREETYPE_LIBRARY explicitly points to the static library file libfreetype.a.
Убедитесь, что переменные путей (FREETYPE_PATH, SDL3_DIR и CMAKE_INSTALL_PREFIX) соответствуют целевым директориям ваших локально собранных статических библиотек. Обратите внимание, что FREETYPE_LIBRARY явно указывает на файл статической библиотеки libfreetype.a.
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 compiled static library (libSDL3_ttf.a) along with headers will be installed in your specified CMAKE_INSTALL_PREFIX directory.
После успешного завершения собранная статическая библиотека (libSDL3_ttf.a) вместе с заголовочными файлами будет установлена по пути, указанному в CMAKE_INSTALL_PREFIX.
Once installed, you can safely remove the temporary source directory and the downloaded archive: После установки вы можете безопасно удалить временную директорию с исходным кодом и скачанный архив:
cd ~ && rm -rf ~/SDL3_ttf-3.2.2 ~/SDL3_ttf-3.2.2.tar.gz
Step 5: Next Steps Шаг 5: Следующие шаги
Now that you have compiled and installed the SDL3_ttf static library, you can proceed with integrating SDL3 and SDL3_ttf: Теперь, когда вы собрали и установили статическую библиотеку SDL3_ttf, вы можете перейти к интеграции SDL3 и SDL3_ttf:
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 Поддержка криптовалютой