CMakeLists.txt
# 602cmake_android_ndk/app/src/main/cpp/mylib/CMakeLists.txt
cmake_minimum_required(VERSION 3.18)
project(mylib)
file(WRITE mylib.h [=[
const char *MyLib();
]=])
file(WRITE mylib.cpp [=[
#include "mylib.h"
const char *MyLib()
{
return "mylib return";
};
]=])
message("ANDROID_ABI = ${ANDROID_ABI}" )
# 给安卓使用的静态库
add_library(mylib STATIC mylib.cpp)
target_compile_options(mylib PRIVATE -fPIC)
set_target_properties(mylib PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/${ANDROID_ABI}#静态库输出路径
)
# 使用NDK编译库
#
#[[
SDK路径
C:\Users\xiaca\AppData\Local\Android\Sdk
ANDROID_ABI x86 x86_64 armeabi-v7a arm64-v8a
CMAKE_TOOLCHAIN_FILE C:/Users/xiaca/AppData/Local/Android/Sdk/ndk/21.4.7075529/build/cmake/android.toolchain.cmake
ANDROID_NDK C:/Users/xiaca/AppData/Local/Android/Sdk/ndk/21.4.7075529
ANDROID_PLATFORM android-30
# 进入vs控制台开发环境
cmake -S . -B build -G "NMake Makefiles" -DANDROID_ABI=x86 -DANDROID_PLATFORM=android-30 -DCMAKE_TOOLCHAIN_FILE=C:/Users/xiaca/AppData/Local/Android/Sdk/ndk/21.4.7075529/build/cmake/android.toolchain.cmake -DANDROID_NDK=C:/Users/xiaca/AppData/Local/Android/Sdk/ndk/21.4.7075529
cmake -S . -B build -G "NMake Makefiles" -DANDROID_ABI=x86_64 -DANDROID_PLATFORM=android-30 -DCMAKE_TOOLCHAIN_FILE=C:/Users/xiaca/AppData/Local/Android/Sdk/ndk/21.4.7075529/build/cmake/android.toolchain.cmake -DANDROID_NDK=C:/Users/xiaca/AppData/Local/Android/Sdk/ndk/21.4.7075529
cmake -S . -B build -G "NMake Makefiles" -DANDROID_ABI=armeabi-v7a -DANDROID_PLATFORM=android-30 -DCMAKE_TOOLCHAIN_FILE=C:/Users/xiaca/AppData/Local/Android/Sdk/ndk/21.4.7075529/build/cmake/android.toolchain.cmake -DANDROID_NDK=C:/Users/xiaca/AppData/Local/Android/Sdk/ndk/21.4.7075529
cmake -S . -B build -G "NMake Makefiles" -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-30 -DCMAKE_TOOLCHAIN_FILE=C:/Users/xiaca/AppData/Local/Android/Sdk/ndk/21.4.7075529/build/cmake/android.toolchain.cmake -DANDROID_NDK=C:/Users/xiaca/AppData/Local/Android/Sdk/ndk/21.4.7075529
]]