如何在Android.mk中添加C-only选项?

时间:2013-11-11 20:38:26

标签: android c++ c android-ndk

在Android.mk中,如果我这样做:

LOCAL_CFLAGS := -foo

然后在编译C和C ++代码时使用-foo。我没有做任何事情来设置LOCAL_CPPFLAGS,它可能会继承所有的CFLAGS。 (为什么?)

如何设置 C-only 选项?

这是必需的,因为某些编译器选项没有相反的匹配选项(所以你不能取消它们),而且我可能想要完全不同的C和C ++定义。

(android ndk r9b)

2 个答案:

答案 0 :(得分:2)

最简单的答案是从具有不同定义和选项的文件构建单独的静态库。

您还可以使用标记机制:

LOCAL_C_SRC_FILES := $(filter %.c, $(LOCAL_SRC_FILES))
LOCAL_C-ONLY_CFLAGS := -DDEBUG=1
TARGET-process-src-files-tags += $(call add-src-files-target-cflags, $(LOCAL_C_SRC_FILES), $(LOCAL_C-ONLY_CFLAGS))

答案 1 :(得分:2)

(问题和答案之后,这被添加到ndk-build系统中)

LOCAL_CONLYFLAGS := -foo