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 に答える