[Tools] [cmake] 调试笔记 --- 64位平台下的cmake配置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kris_fei/article/details/84644996

背景:

64位平台需要使用armv8版本编译so。


调试:

从armv7版本配置上修改CMAKE_ANDROID_ARCH_ABI
armeabi-v7aarm64-v8a

报如下错误:

Make Error at /opt/cmake-3.8.1-Linux-x86_64/share/cmake-3.8/Modules/Platform/Android-Determine.cmake:287 (message):
  Android: CMAKE_ANDROID_ARM_NEON is set but is valid only for 'armeabi-v7a'
  architecture.
Call Stack (most recent call first):
  /opt/cmake-3.8.1-Linux-x86_64/share/cmake-3.8/Modules/CMakeDetermineSystem.cmake:124 (include)
  CMakeLists.txt:3 (project)


CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!
make: *** No targets specified and no makefile found.  Stop.

CMAKE_ANDROID_ARM_NEON是配合armv7做的设置,见官网说明:

在这里插入图片描述

移除CMAKE_ANDROID_ARM_NEON设置,编译成功。


最终配置:

android.toolchain.camke如下:

set(CMAKE_SYSTEM_NAME Android)
set(CMAKE_SYSTEM_VERSION 23)
set(CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION clang)
set(CMAKE_ANDROID_ARCH_ABI arm64-v8a)
#set(CMAKE_ANDROID_ARM_NEON ON)
set(CMAKE_ANDROID_NDK /opt/android-ndk-r14b)
set(CMAKE_ANDROID_STL_TYPE gnustl_static)


参考:

CMake

猜你喜欢

转载自blog.csdn.net/kris_fei/article/details/84644996