我有一些自己的C++代碼編譯並使用NDK正常運行。由於我看不到任何方式來訪問內置於Android的libpng庫,我唯一的選擇似乎是編譯我自己的版本並使用它(我有興趣瞭解替代方案)。在導入路徑錯誤中找不到模塊
我目前正試圖擴展我的代碼以利用libpng。我無法弄清楚如何讓我的代碼構建。我已閱讀文檔並瀏覽新聞組的問題和答案,但我無法解決我的問題。
我已將libpng複製到我的源代碼樹中。我試圖編譯libpng作爲一個靜態庫,然後讓我的代碼使用它來訪問libpng的函數。以下是我迄今爲止我make文件:
########## Directory layout ##########
jni/
Android.mk
mylib/
Android.mk
source files...
libpng/
Android.mk
source files...
########## Top-level Android.mk ##########
LOCAL_PATH := $(call my-dir)
include $(LOCAL_PATH)/libpng/Android.mk
include $(LOCAL_PATH)/mylib/Android.mk
########## mylib Android.mk ##########
include $(CLEAR_VARS)
NDK_MODULE_PATH := $(LOCAL_PATH)
LOCAL_STATIC_LIBRARIES := libpng
LOCAL_C_INCLUDES := $(LOCAL_PATH)/libpng
LOCAL_LDLIBS := -llog
LOCAL_MODULE := mylib
LOCAL_CFLAGS :=
sources := mylib.cpp
LOCAL_SRC_FILES += $(sources:%=mylib/%)
include $(BUILD_SHARED_LIBRARY)
$(call import-module, libpng)
########## libpng Android.mk ##########
include $(CLEAR_VARS)
LOCAL_CFLAGS :=
LOCAL_MODULE := libpng
sources :=\
png.c \ # etc.
LOCAL_SRC_FILES += $(sources:%=libpng/%)
LOCAL_LDLIBS := -lz
include $(BUILD_STATIC_LIBRARY)
MYLIB是我的代碼,如果我刪除所有的libpng材料已經編譯。 libpng也會自己編譯成功。注意我將我的代碼和libpng代碼保存在不同的目錄中,並嘗試使用頂級make文件來編譯這些代碼。
說我卡試圖建立MYLIB當在當前的錯誤消息是:
找不到在導入路徑與標籤「的libpng」模塊
的Android NDK:你確定你的NDK_MODULE_PATH變量定義正確?
我已經將NDK_MODULE_PATH設置爲$(LOCAL_PATH),我相信這意味着構建過程應該找到libpng/Android.mk,但它不會。誰能幫忙?