我无法将一些make文件重构为可管理的模块。
以下是我尝试完成的结构:
注意:我从Vuforia SDK ImageTargets示例开始并添加 一些其他的库,如读取OBJ,PNG和ZIP文件。我也是 包括freetype和ftgles库。
我从根Android.mk文件中调用其他make文件
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
include jni/libobj/Android.mk
include jni/libpng/Android.mk
include jni/libzip/Android.mk
include jni/freetype/Android.mk
include jni/ftgles/Android.mk
include jni/qcar/Android.mk
include jni/imagetargets/Android.mk
您可以看到 all make files in a gist on github 。
编译器给出以下错误:
安装:libFTGLES.so => libs / armeabi / libFTGLES.so编译++ arm:ImageTargets< = ImageTargets.cpp jni / imagetargets / ImageTargets.cpp:44:24:致命错误:libpng / png.h:否 此类文件或目录编译已终止。 make: * [obj / local / armeabi / objs / ImageTargets / ImageTargets.o]错误1
知道如何为libtarget模块提供libpng(和其他模块)头文件吗?
答案 0 :(得分:1)
我认为使用LOCAL_EXPORT_C_INCLUDES
在每个子makefile中指定包含路径将确保在构建最终模块时标头可用。
在NDK文档中查看此标志的文档(可在NDK目录中找到),但据我所知,它将完全按照您的要求执行:自动将每个子模块的包含路径导出到最后的模块。