2011-03-01 73 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

相关问题