android mkが他のsoライブラリをどのように参照するかについて
1211 ワード
通常、androidを開発するソフトウェアは、soライブラリをコンパイルする必要があることが多いが、コンパイルされたこのsoライブラリは、複数の他のsoライブラリを呼び出す必要がある.ここでは主に,soライブラリをコンパイルする際に,他のsoライブラリを呼び出すmkがどのように書かれているかを記録する.
ここで説明する例:libtest 3をコンパイルする必要がある.so libtest 1を呼び出す必要があります.so,libtest2.so
1.androidソースでコンパイル
2.NDK環境でのコンパイル
ここで説明する例:libtest 3をコンパイルする必要がある.so libtest 1を呼び出す必要があります.so,libtest2.so
1.androidソースでコンパイル
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := eng
LOCAL_SRC_FILES := \
test3.cpp
LOCAL_C_INCLUDES += \
$(LOCAL_PATH)/include/ \
external/libpiccreader/
LOCAL_MODULE := libtest3
#LOCAL_LDLIBS += -lpthread -ldl
LOCAL_SHARED_LIBRARIES := liblog \
libcutils \
libutils \
libtest1 \
libtest2
include $(BUILD_SHARED_LIBRARY)
2.NDK環境でのコンパイル
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libtest1
LOCAL_SRC_FILES := libtest1.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libtest2
LOCAL_SRC_FILES := libtest2.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := eng
LOCAL_SRC_FILES := \
test3.cpp
LOCAL_MODULE := libtest3
LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog
LOCAL_SHARED_LIBRARIES := liblog \
libcutils \
libutils \
libtest1 \
libtest2
include $(BUILD_SHARED_LIBRARY)