在项目开发中有时候会用到第三方库,但是在Android编译系统中不能像Linux那样直接在Makefile链接某个so,Android所有的库都需要在out/target/product/项目/obj/lib/生成,所有我们可以采用Android 的预编译BUILD_PREBUILT将第三方库编译到out/target/product/项目/obj/lib/中,于是有以下的Android.mk
#1.预编译第三方库liba.so
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
#要生成的库
LOCAL_MODULE := liba
#默认选项
LOCAL_MODULE_TAGS := optional
#所属的类是动态库
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
#这个是生成的后缀,我在hisi上面是可以不用加这个的,但是高通上面必须要加这个,不然编译的出来的库不带so
LOCAL_MODULE_SUFFIX := .so
#这个是第三方的库
LOCAL_SRC_FILES := armeabi-v7a/liba.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)
include $(BUILD_PREBUILT)
#2.使用该库
include $(CLEAR_VARS)
LOCAL_MODULE := libmaintest
LOCAL_SRC_FILES := main.c
LOCAL_C_INCLUDES := $(LOCAL_PATH)
#链接上面预编译的共享库
LOCAL_SHARED_LIBRARIES := liba
include $(BUILD_SHARED_LIBRARY)
上面的Android.mk程序在hisi3798MV200上是可以编译通过的,因为他编译出来的so全部都是32位