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.

Make sure you have already built the core SDL3 and FreeType libraries for Ubuntu by following these instructions: Убедитесь, что вы уже собрали основные библиотеки SDL3 и 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
Note: Примечание: Ensure that the path variables (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) Сбербанк (только для РФ)

Sberbank SBP QR Code

Direct transfer via phone number (Russia only) Перевод по номеру телефона (только для РФ)

+7 (917) 212-29-59

USDT TRC20

USDT TRC20 QR Code

Support via Cryptocurrency Поддержка криптовалютой

TMtY1YifNf6FKvgeFmqKGQR4NStKr3csGp