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

标签 android c++ c android-ndk

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

LOCAL_CFLAGS := -foo

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

如何设置C-only选项?

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

(安卓 ndk r9b)

最佳答案

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

也可以使用标签机制:

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))

关于android - 如何在 Android.mk 中添加 C-only 选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19915465/

相关文章:

Android Material 库 ShapeableImageView 未显示应用程序 :shapeAppearanceOverlay 的预览

android - 如何更改按钮的颜色?

c11 中函数可以使用自己的地址吗?

c - 所有关于 C 内存管理

java - 旋转器无法正常工作

java - 在java android中使用两个比较器

c++ - 如何在多个项目中共享一个主要功能/文件?

c++ - OpenCV VideoCapture 输出图像剪切到左上四分之一

c++ - linux/MSVC 2012 中的管道不稳定行为

c - printf 减慢了我的程序