2011-03-01 94 views
2

我有一些自己的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,但它不會。誰能幫忙?

回答

3

試用LOCAL_MODULE := png而不是libpng

相關問題