我有一些自己的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,但它不会。谁能帮忙?