背景:
默认cmake编译的出来的so是x86 64位(PC硬件环境),现在需要改成交叉编译适用到Android平台上。
解决方法:
编写一个文件名字叫: android.toolchain.cmake
set(CMAKE_SYSTEM_NAME Android)
set(CMAKE_SYSTEM_VERSION 23)
set(CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION clang)
set(CMAKE_ANDROID_ARCH_ABI armeabi-v7a)
set(CMAKE_ANDROID_ARM_NEON ON)
set(CMAKE_ANDROID_NDK /opt/android-ndk-r14b)
set(CMAKE_ANDROID_STL_TYPE gnustl_static)
然后命令行此文件作为参数调用即可:
/opt/cmake-3.8.1-Linux-x86_64/bin/cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/android.toolchain.cmake ..
Log可以看到交叉编译环境生效:
生成文件格式也正确: