首页 > 解决方案 > 适用于 android 的最小 CMake 构建

问题描述

我正在尝试将本机 C++ DLL 移植为 Android 上的共享库。对于构建,我使用的是 VSCode,而不是 Visual Studio。下载了安卓 NDK r18b。我的项目是基于 CMake 的,当我尝试使用“NMake Mmakefiles”生成器生成它时,我总是收到此错误:

CMAKE_SYSTEM_NAME is 'Android' but 'NVIDIA Nsight Tegra Visual Studio Edition' is not installed.

我创建了一个小项目来测试它。

主文件

int foo( int a, int b ) { return a + b; }

CMakeLists.txt

cmake_minimum_required( VERSION 3.11.0 )
add_library( Engine SHARED main.cpp )

我用这个命令行(CMake 3.11.4)运行它:

cmake -g "NMake Makefiles" .. -DCMAKE_TOOLCHAIN_FILE=%NDK_ROOT%\build\cmake\android.toolchain.cmake -DANDROID_NDK=%NDK_ROOT%

有了这个,我仍然得到错误:

CMake Error in CMakeLists.txt:
CMAKE_SYSTEM_NAME is 'Android' but 'NVIDIA Nsight Tegra Visual Studio Edition' is not installed.

有人可以帮我把这个小的 main.cpp 变成 Android .so 吗?我不想使用 Android Studio 或其他 IDE。寻找创建一个 make 文件并将其添加到我的 VSCode 构建中。

谢谢你。

标签: androidc++cmake

解决方案


请使用MinGW Makefiles生成器和其他选项,如下所示

cmake
-G"MinGW Makefiles"
-DCMAKE_TOOLCHAIN_FILE=xxx -DCMAKE_MAKE_PROGRAM=xxx 
-DANDROID_TOOLCHAIN=clang -DANDROID_ABI=armeabi-v7a/ABI=arm64-v8a
-DANDROID_NATIVE_API_LEVEL=xxx

推荐阅读