概要
Android Studio可以使用不同的指令集进行编译,如arm64-v8a,armeabi-v7a。有时我们需要在c层感知当前编译的指令集,并进行适当的调整,如使用不同的obj对象(.o文件)。本文介绍具体的做法。
cmake文件感知指令集
if(${ANDROID_ABI} MATCHES "arm64-v8a") #针对不同ABI设置不同的编译代码
message("CMAKE arm64-v8a!!!!")
set(LOCAL_LIB # 加载不同的.o文件
../local_lib/arm64-v8a/xxx.o
)
elseif(${ANDROID_ABI} MATCHES "armeabi-v7a")
message("CMAKE armeabi-v7a!!!!")
set(LOCAL_LIB # 加载不同的.o文件
../local_lib/armeabi-v7a/xxx.o
)
endif()
集成obj对象
add_library(
flp-vdr-trans-v2p
SHARED
${LOCAL_LIB} # 和放c文件的方式类似,只是不经过compile阶段,会进行link
)