概要
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-v2pSHARED${LOCAL_LIB} # 和放c文件的方式类似,只是不经过compile阶段,会进行link
)