Building Recast Navigation Shared Libraries for Android (NDK & CMake) Сборка динамических библиотек Recast Navigation для Android (NDK и CMake)

A guide to compiling Recast Navigation source code into shared libraries (.so) for Android using CMake and NDK. Руководство по компиляции исходного кода Recast Navigation в динамические библиотеки (.so) для Android с помощью CMake и NDK.

Before proceeding, make sure you have set up your build environment using the appropriate guides: Перед продолжением убедитесь, что вы настроили среду сборки, следуя соответствующим инструкциям:

Step 1: Download Recast Navigation Source Code Шаг 1: Скачивание исходного кода Recast Navigation

Download the latest source archive from the main branch of the official GitHub repository: Скачайте свежий архив с исходным кодом из ветки main официального репозитория GitHub:

Download Recast Navigation (main branch) Скачать Recast Navigation (ветка main)

Extract the downloaded archive to a convenient directory on your machine. Распакуйте скачанный архив в удобную директорию на вашем компьютере.

Step 2: Create the Build Script Шаг 2: Создание скрипта сборки

In the root directory of the extracted Recast Navigation source folder, create an empty file named build-android-64-bit.bat and paste the following content into it: В корневой директории распакованного исходного кода Recast Navigation создайте пустой файл build-android-64-bit.bat и вставьте в него следующее содержимое:

@echo off
set NDK=H:/AndroidSDK/ndk/28.2.13676358

set BUILD_DIR=build-android-64

if exist %BUILD_DIR% rmdir /s /q %BUILD_DIR%
mkdir %BUILD_DIR%
cd %BUILD_DIR%

cmake .. ^
  -DCMAKE_TOOLCHAIN_FILE=%NDK%/build/cmake/android.toolchain.cmake ^
  -DANDROID_ABI=arm64-v8a ^
  -DANDROID_PLATFORM=android-21 ^
  -DBUILD_SHARED_LIBS=ON ^
  -DRECASTNAVIGATION_DEMO=OFF ^
  -DRECASTNAVIGATION_TESTS=OFF ^
  -DRECASTNAVIGATION_EXAMPLES=OFF ^
  -DCMAKE_BUILD_TYPE=Release ^
  -DCMAKE_INSTALL_PREFIX=C:/libs/recastnavigation-android/arm64-v8a ^
  -G "MinGW Makefiles"

cmake --build . --config Release --parallel --target install
Note: Примечание:

Make sure to adjust the NDK path and CMAKE_INSTALL_PREFIX according to your local environment. We set -DBUILD_SHARED_LIBS=ON to compile dynamic shared libraries (.so). Убедитесь, что пути к NDK и CMAKE_INSTALL_PREFIX соответствуют вашему окружению. Флаг -DBUILD_SHARED_LIBS=ON включает сборку динамических библиотек (.so).

Why disable the demo and SDL? The repository includes RecastDemo, a desktop graphical navmesh visualizer that depends on SDL (Simple DirectMedia Layer) for window creation and input handling. Since Android NDK toolchains do not provide desktop SDL libraries, CMake will fail if it tries to build the demo. Setting -DRECASTNAVIGATION_DEMO=OFF, -DRECASTNAVIGATION_TESTS=OFF, and -DRECASTNAVIGATION_EXAMPLES=OFF eliminates this dependency and builds only the core navigation libraries. Зачем отключать демо и SDL? В репозитории содержится проект RecastDemo — десктопное графическое приложение для визуализации navmesh, которое использует библиотеку SDL (Simple DirectMedia Layer) для создания окна и обработки ввода. Поскольку в тулчейне Android NDK отсутствуют десктопные библиотеки SDL, CMake завершится с ошибкой поиска SDL. Флаги -DRECASTNAVIGATION_DEMO=OFF, -DRECASTNAVIGATION_TESTS=OFF и -DRECASTNAVIGATION_EXAMPLES=OFF исключают эту зависимость и собирают только основные навигационные библиотеки.

Step 3: Run and Compile Шаг 3: Запуск и сборка

Run build-android-64-bit.bat via Command Prompt (CMD) so you can catch any potential compilation errors in the console. Once completed, your compiled shared libraries (libRecast.so, libDetour.so, libDetourCrowd.so, libDetourTileCache.so, etc.) along with headers will be installed in the output path set by CMAKE_INSTALL_PREFIX (C:/libs/recastnavigation-android/arm64-v8a). Запустите build-android-64-bit.bat через командную строку (CMD), чтобы вы могли увидеть возможные ошибки сборки прямо в консоли. После завершения собранные динамические библиотеки (libRecast.so, libDetour.so, libDetourCrowd.so, libDetourTileCache.so и др.) вместе с заголовочными файлами будут установлены по пути, указанному в CMAKE_INSTALL_PREFIX (C:/libs/recastnavigation-android/arm64-v8a).

Step 4: Next Steps Шаг 4: Следующие шаги

Now that you have compiled the shared libraries for Android, you can integrate Recast Navigation into your CMake Android projects: Теперь, когда вы собрали динамические библиотеки для Android, вы можете перейти к интеграции Recast Navigation в свои Android-проекты на CMake:

Integrating Recast Navigation Shared Libraries for Android (NDK & CMake) Интеграция динамических библиотек Recast Navigation для Android (NDK и CMake)


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