使用Android.mk正确引用外部头文件/源文件的方法

时间:2017-04-25 13:48:09

标签: android android-ndk

我正在制作一款需要GLM lib的3D应用程序。我的NDK目录包含GLM lib源代码,因此我尝试使用以下命令链接它:

LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../../../Android/SDK/ndk-bundle/sources/third_party/vulkan/src/libs

我想这样做:

LOCAL_C_INCLUDES += Android/SDK/ndk-bundle/sources/third_party/vulkan/src/libs

我在Android doc上发现LOCAL_C_INCLUDES是相对于NDK根目录的。 link

文档有点令人困惑,它提到了NDK的根目录,但给出了应用程序的本地目录(您的本机模块所在的位置)的示例。

我的问题是:

  • 是否有正确的方法从我的引用外部文件(cpp / hpp) 应用程序使用Android.mk
  • 我是否必须使用所有../来保留 相对路径?
  • 我是否必须将所有GLM文件复制到库中 我的申请中的文件夹?

提前谢谢你,

1 个答案:

答案 0 :(得分:0)

验证图层的NDK测试显示了如何导入它们:https://android.googlesource.com/platform/ndk/+/ccb50936470af0c6ccf35bc463a0723b637fd1cd/tests/build/vulkan_layers/jni/Android.mk#12

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := vulkan
LOCAL_SRC_FILES := instance.cpp
LOCAL_CFLAGS := -std=c++11 -DVK_PROTOTYPES
LOCAL_LDLIBS := -lvulkan
LOCAL_STATIC_LIBRARIES := shaderc glslang
include $(BUILD_EXECUTABLE)

$(call import-module,third_party/shaderc)
$(call import-module,third_party/vulkan/src/build-android/jni)