1

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

LOCAL_CFLAGS := -foo

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

如何设置仅 C选项?

这是必需的,因为某些编译器选项没有具有相反效果的匹配选项(因此您无法取消设置它们),而且我可能希望 C 和 C++ 的定义完全不同。

(安卓 ndk r9b)

4

2 回答 2

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))
于 2013-11-11T22:30:38.863 回答
2

(这是在问答后添加到ndk-build系统中的)

LOCAL_CONLYFLAGS := -foo

于 2017-10-13T09:34:38.257 回答