在Android的Native开发中,我们通常使用mk文件来编译我们的C/C++源代码,去生成对应的二进制文件。在mk编译文件中,我们可能需要不同的目录里面的.h文件引入一些变量函数等。然而,有时候在修改指定生成模块的目录的时候,或许会报“no found”错误,那么我们可以通过设置LOCAL_C_INCLUDES变量来指定头文件的搜索目录,来补上缺少的头文件。
一般可以按照如下的四种方式修改:
method 1:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := mymodule
LOCAL_SRC_FILES := mysourcefile.c
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
include $(BUILD_SHARED_LIBRARY)
在这个例子中,我们将头文件目录设置为(LOCAL_PATH)/include。$(LOCAL_PATH)是指
mk文件所在的目录。
method 2:
如果你有多个头文件目录需要设置,你可以这样做:
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include \
$(LOCAL_PATH)/include2 \
$(LOCAL_PATH)/include3
method 3:
如果你需要包含的头文件目录在其他的路径下,你可以直接给出这个路径:
LOCAL_C_INCLUDES := /my/other/path/include \
/my/other/path/include2 \
/my/other/path/include3
method 4:
如果你需要包含的头文件目录在其他的模块路径下,你可以使用$(location)函数来获取这个路径:
LOCAL_C_INCLUDES := $(location :other-module)/include
注意:在Android.mk中设置LOCAL_C_INCLUDES的路径时,路径要使用绝对路径,不能使用相对路径。