Каждый файл CPPFLAGS в Android.МК
Я работаю над Андроидом.Mk файл, в котором для одного модуля, один из файлов нуждается в различных CPPFLAGS; а именно, он должен-frtti включен, в то время как другие нуждаются в Android по умолчанию-fno-rtti.
очевидным решением было целевые переменные, но, как ни странно, они, похоже, не влияют на компиляцию, даже с некоторыми манипуляциями, чтобы гарантировать, что значения должны быть исправлены в нужное время.
вот выдержка из моего Android.mk (имена изменены на защити меня):
LOCAL_MODULE := foo_bar
LOCAL_SRC_FILES :=
foo_bar.cpp
foo_baz.cpp
my_intermediates:= $(local-intermediates-dir)/foo_baz.o
$(my_intermediates): LOCAL_CPPFLAGS := -frtti
Я попытался просто сделать foo_baz.o:
вместо $(my_intermediates) и попробовали заменить +=
на :=
без изменения.
Итак, есть ли Android-специфический способ переопределить CPPFLAGS (или CFLAGS) для определенного исходного файла?
(в этом случае я использую источники Eclair Android, хотя это может относиться к NDK; см. Мой ответ ниже.)
2 ответов
как обычно, задав вопрос, потратив на это много времени, я быстро нашел ответ. Мне нужно использовать PRIVATE_CPPFLAGS
вместо LOCAL_CPPFLAGS
.
однако это, по-видимому, относится только к исходному дистрибутиву Android (по крайней мере, Eclair) и NDK r6b. Если бы я использовал NDK r6, это, вероятно, сработало бы так, как есть.
самый простой способ иметь разные параметры для некоторых исходных файлов-сгруппировать эти файлы в Android.mk вместе для создания статической библиотеки include $(BUILD_STATIC_LIBRARY)
который затем будет указан в LOCAL_STATIC_LIBRARIES
для результирующего общего объекта.