2013-11-11 3 views
1

В Android.mk, если я это сделать:Как добавить параметр C-only в Android.mk?

LOCAL_CFLAGS := -foo 

Затем -foo используется при компиляции как C и C++ код. Я не делаю ничего, чтобы установить LOCAL_CPPFLAGS, он предположительно наследует все CFLAGS. (Почему?)

Как установить C-only опция?

Это необходимо, потому что некоторые параметры компилятора не имеют подходящей опции с противоположным эффектом (так что вы не можете их отключить), а также я могу получить совершенно разные определения для C и C++.

(Android NDK R9b)

ответ

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

(Это был добавлен в НДК-сборки системы после того, как вопрос и ответ)

LOCAL_CONLYFLAGS := -foo

Смежные вопросы