Building Recast Navigation Static Libraries for Ubuntu (GCC, CMake & Ninja) Сборка статических библиотек Recast Navigation для Ubuntu (GCC, CMake и Ninja)
A guide to compiling Recast Navigation source code into static libraries on Ubuntu. Руководство по компиляции исходного кода Recast Navigation в статические библиотеки в Ubuntu.
Step 1: Install Build Dependencies Шаг 1: Установка зависимостей сборки
Ensure that wget is installed on your system to download source archives:
Убедитесь, что wget установлен в вашей системе для скачивания архивов с исходным кодом:
sudo apt update && sudo apt install -y wget
Step 2: Download Recast Navigation Source Code Шаг 2: Скачивание исходного кода Recast Navigation
You can browse the official GitHub repository to check the main branch source code: Вы можете перейти в официальный репозиторий GitHub, чтобы ознакомиться с исходным кодом ветки main:
View Recast Navigation Repository Смотреть репозиторий Recast Navigation
Download and extract the source archive from the main branch using wget:
Скачайте и распакуйте архив с исходным кодом из ветки main с помощью wget:
cd ~
wget https://github.com/recastnavigation/recastnavigation/archive/refs/heads/main.tar.gz -O recastnavigation-main.tar.gz
tar -xzf recastnavigation-main.tar.gz
cd recastnavigation-main
Step 3: Create the Build Script Шаг 3: Создание скрипта сборки
In the root directory of the extracted Recast Navigation source folder, create a script named build-ubuntu-static.sh with the following content:
В корневой директории извлеченного исходного кода Recast Navigation создайте файл 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/recastnavigation-ubuntu" \
-DCMAKE_CXX_STANDARD=20 \
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
-DBUILD_SHARED_LIBS=OFF \
-DRECASTNAVIGATION_DEMO=OFF \
-DRECASTNAVIGATION_TESTS=OFF \
-DRECASTNAVIGATION_EXAMPLES=OFF
cmake --build . --config Release --parallel $(nproc) --target install
-DCMAKE_CXX_STANDARD=20 to build using C++20 standard, which natively resolves header includes across modern GCC toolchains. Setting RECASTNAVIGATION_DEMO=OFF and RECASTNAVIGATION_TESTS=OFF ensures only the core static libraries (Recast, Detour, DebugUtils, etc.) are built.
Мы используем -DCMAKE_CXX_STANDARD=20 для сборки по стандарту C++20, что решает подключение заголовочных файлов в современных тулчейнах GCC. Флаги RECASTNAVIGATION_DEMO=OFF и RECASTNAVIGATION_TESTS=OFF гарантируют сборку только основных статических библиотек (Recast, Detour, DebugUtils и др.).
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 libraries (libRecast.a, libDetour.a, etc.) along with headers will be installed in your specified CMAKE_INSTALL_PREFIX directory.
После успешного завершения собранные статические библиотеки (libRecast.a, libDetour.a и др.) вместе с заголовочными файлами будут установлены по пути, указанному в CMAKE_INSTALL_PREFIX.
Once installed, you can safely remove the temporary source directory and the downloaded archive: После установки вы можете безопасно удалить временную директорию с исходным кодом и скачанный архив:
cd ~ && rm -rf ~/recastnavigation-main ~/recastnavigation-main.tar.gz
Step 5: Next Steps Шаг 5: Следующие шаги
Now that you have configured your environment, you can proceed with integrating the Recast Navigation library using CMake: Теперь, когда вы настроили окружение, вы можете перейти к интеграции библиотеки Recast Navigation с помощью 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 Поддержка криптовалютой