本人使用Android studio3.0进行NDK开发,由于Android develop官网文档是针对2.2版本以下,这里为2.2以上版本的cmakelist配置做以下纪录:
一、添加NEON支持:
在build.gradle(app)中添加:
externalNativeBuild { cmake { cppFlags "" arguments "-DLOCAL_ARM_NEON=true" //NEON支持 } }
二、添加cpufeatures支持:
1.添加cpufeatures静态库:
include_directories(${ANDROID_NDK}/sources/android/cpufeatures) add_library(cpufeatures STATIC ${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c)
2.配置参数:
if (${ANDROID_ABI} STREQUAL "armeabi-v7a") # make a list of neon files and add neon compiling flags to them set(neon_SRCS src/main/cpp/native-lib.cpp) set_property(SOURCE ${neon_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -mfpu=neon") add_definitions("-DHAVE_NEON=1") #add_definitions("-DLOCAL_ARM_NEON=1") elseif (${ANDROID_ABI} STREQUAL "x86") set(neon_SRCS src/main/cpp/native-lib.cpp) set_property(SOURCE ${neon_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -mssse3 -Wno-unknown-attributes \ -Wno-deprecated-declarations \ -Wno-constant-conversion \ -Wno-static-in-inline") add_definitions(-DHAVE_NEON_X86=1 -DHAVE_NEON=1) #add_definitions("-DLOCAL_ARM_NEON=1") else () set(neon_SRCS) endif ()
3.添加到link:
target_link_libraries( # Specifies the target library. native-lib cpufeatures # Links the target library to the log library # included in the NDK. ${log-lib} ) target_include_directories(native-lib PRIVATE ${ANDROID_NDK}/sources/android/cpufeatures)