Android Android.mk使用三方库

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := alpu_all_test
LOCAL_C_INCLUDES += \
    $(LOCAL_PATH)/function/SHARE_CODE
    
LOCAL_SRC_FILES := $(call all-subdir-c-files)
#LOCAL_STATIC_LIBRARIES := \
#    libalpu_fa_000_static
LOCAL_LDFLAGS := $(LOCAL_PATH)/function/CIPHER_MEMORY_LIB/alpu_fa_000_YunCong_20190530.a
#LOCAL_LDLIBS := -L$(LOCAL_PATH)/function/CIPHER_MEMORY_LIB/ -lalpu_fa_000_YunCong_20190530
#LOCAL_SHARED_LIBRARIES := 
#LOCAL_CFLAGS += -Wall -Wno-unused-parameter -std=gnu99 
#LOCAL_WHOLE_STATIC_LIBRARIES := alpu_fa_000_static
include $(BUILD_EXECUTABLE)

include $(call all-makefiles-under, $(LOCAL_PATH))
#include $(LOCAL_PATH)/function/CIPHER_MEMORY_LIB/Android.mk

 

方案:

(1)使用LOCAL_LDFLAGS 导入本地库的全路径,也可-L+库路径   + -l+库名称

(2)使用LOCAL_LDLIBS 例-L$(LOCAL_PATH)/function/CIPHER_MEMORY_LIB/ (库路径,前加-L)

-lalpu_fa_000_YunCong_20190530(库名称,注意前加-l),也可直接写库全路径,如$(LOCAL_PATH)/function/CIPHER_MEMORY_LIB/alpu_fa_000_YunCong_20190530.a

以上两个LOCAL变量的两种方法(库(.a .so)全路径或-L + -l)在Android6.0上都可以使用,在Android8.1上只有库全路径的方式可以使用,如果使用(-L + -l)的方式不会在本地找库,会直接去out目录下找库(默认找动态库)和LOCAL_SHARED_LIBRARIES有点类似

(3)LOCAL_SHARED_LIBRARIES 和 LOCAL_STATIC_LIBRARIES,此种方式只会去out下找对应得库,需要库文件先编译到out下

若是已经编译好的库需要使用预编译include $(BUILD_PREBUILT),如:

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
LOCAL_MODULE_SUFFIX := .a
LOCAL_MODULE := libalpu_fa_000_static
LOCAL_SRC_FILES := alpu_fa_000_YunCong_20190530.a
#include $(BUILD_STATIC_LIBRARY)
#include $(BUILD_SHARED_LIBRARY)
include $(BUILD_PREBUILT)

Android8.1已经将PREBUILT_STATIC_LIBRARY和PREBUILT_SHARED_LIBRARY 两个宏废弃,统一使用BUILD_PREBUILT预编译,通过LOCAL_MODULE_CLASS来指定编译文件类型。

另外预编译库不能使用BUILD_STATIC_LIBRARY和BUILD_SHARED_LIBRARY,使用这两个虽然不会报错,但会有警告,生成的库文件是空的,无法使用。

LOCAL_MULTILIB:=32/64/both  来指定使用的库是32位还是64位,32位库生成在out.../obj_arm

64位库生成在out.../obj/

若APK使用系统预制的lib库,在APK的Android.mk中添加LOCAL_LDLIBS :=即可,不用将这个库放在APK源码中

例如:LOCAL_LDLIBS := -llibwiegand51-jni 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Free飝Fly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值