動(dòng)態(tài)庫(kù)的編譯與在動(dòng)態(tài)庫(kù)中調(diào)用編譯的動(dòng)態(tài)庫(kù)解析
這一篇講的是 動(dòng)態(tài)庫(kù)中調(diào)用動(dòng)態(tài)庫(kù)
第一個(gè)要編譯的動(dòng)態(tài)庫(kù):
PrintTest.h:
extern int Add(int ?x, int ?y); ?
PrintTest.c
#include "PrintTest.h" ?
??
int ?Add(int ?x, int ?y) ?
{ ?
? ? return x + y; ?
} ?
Android.mk:
LOCAL_PATH:= $(call my-dir) ??
include $(CLEAR_VARS) ?
LOCAL_MODULE ? ?:= print_share?
LOCAL_SRC_FILES := PrintTest.c ??
include $(BUILD_SHARED_LIBRARY) ?
運(yùn)行ndk-build
編譯出來(lái)的文件在?objlocalarmeabi 文件夾,而不是libs文件夾那個(gè)!特別要注意。。。。。。。。。。
現(xiàn)在來(lái)編譯第二個(gè)動(dòng)態(tài)庫(kù),他來(lái)調(diào)用第一個(gè)動(dòng)態(tài)庫(kù)
user.c:
#include "PrintTest.h" ?
#include
Android.mk:
LOCAL_PATH:= $(call my-dir) ?
??
# 需要把動(dòng)態(tài)庫(kù)導(dǎo)入?
# ?
include $(CLEAR_VARS) ?
LOCAL_MODULE ? ?:= print_share?
LOCAL_SRC_FILES := libprint_share.so?
include $(PREBUILT_SHARED_LIBRARY) ?
??
# 第二個(gè)為動(dòng)態(tài)庫(kù),在動(dòng)態(tài)庫(kù)中使用我們編譯的動(dòng)態(tài)庫(kù)
?
include $(CLEAR_VARS) ?
LOCAL_MODULE ? ?:= libuse ?
LOCAL_SRC_FILES := Use.c ?
LOCAL_SHARED_LIBRARIES := libprint_share
include $(BUILD_SHARED_LIBRARY) ?