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.

If you haven't set up C/C++ development tools on your Ubuntu machine, follow the Если вы еще не настроили инструменты разработки C/C++ на вашей системе Ubuntu, следуйте инструкции: Ubuntu C/C++ Development Environment Setup Guide Руководство по настройке среды разработки C/C++ на 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
Note: Примечание: We set -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:

Integrating Recast Navigation C++ Library with CMake on Windows & Ubuntu Интеграция C++-библиотеки Recast Navigation с CMake под Windows и Ubuntu


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