现在的位置: 首页 > 综合 > 正文

编写 android.mk 中 LOCAL_C_INCLUDES 的技巧

2018年05月17日 ⁄ 综合 ⁄ 共 819字 ⁄ 字号 评论关闭

原文链接:http://blog.csdn.net/xiangzilv1987/article/details/16805983

在编写 android.mk 的过程中,免不了要修改 LOCAL_C_INCLUDES 来设置头文件的 include 目录,一般写成这样

LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes \

$(LOCAL_PATH)/../../Classes/game \

$(LOCAL_PATH)/../../Classes/logic \

$(LOCAL_PATH)/../../Classes/view

有一个目录就要写一行,实在繁琐,有没有写法可以把源码目录下的所有子目录都引入呢,看下面

LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes

LOCAL_C_INCLUDES += $(shell ls -FR $(LOCAL_C_INCLUDES) | grep $(LOCAL_PATH)/$ )

LOCAL_C_INCLUDES := $(LOCAL_C_INCLUDES:$(LOCAL_PATH)/%:=$(LOCAL_PATH)/%)

即可把 $(LOCAL_PATH)/../../Classes 目录和子目录全部包含进来

还有一种写法,就是使用 sed 命令,效果是一样的,我对 sed 不是很熟悉,简单写了一下

LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes 

LOCAL_C_INCLUDES += $(shell ls -FR $(LOCAL_C_INCLUDES) | grep $(LOCAL_PATH)/$ | sed "s/:/ /g" )

这两行和上面三行的结果是一样的

如果要方便的引入源文件到 android.mk 文件里,可以参考我的这篇 post:

编写Android.mk中的LOCAL_SRC_FILES的终极技巧

以上代码在 mac + NDK r8e 下测试通过

抱歉!评论已关闭.