Макропроцессор в Android.mk игнорируется, но работает в Application.mk

Я создал проект Android, используя jni. Теперь я хочу использовать макросы препроцессора, чтобы отличать Lite от полной версии. Он должен выглядеть так:

#ifdef LITE auto label = LabelTTF::create("Hello Cocos2dx Lite", "Arial", 24); #else auto label = LabelTTF::create("Hello Cocos2dx Full", "Arial", 24); #endif 

Для этого я определил переменную в APP_CPPFLAGS в Android.mk следующим образом:

 APP_CPPFLAGS += -DLITE 

К сожалению, приложение полностью игнорирует его, и я все еще вижу ярлык «Hello Cocos2dx Full». Однако эта же строка работает, когда я помещаю ее в Application.mk.

  • Почему это?
  • Как я могу определить переменную, чтобы у меня было два разных файла make-файлов для полной и облегченной версии?

APP_CPPFLAGS и все другие переменные APP_ make должны быть установлены в Application.mk . Для изменений в модуле используйте LOCAL_CPPFLAGS или LOCAL_CFLAGS

Позиция определения в файле Android.mk была неправильной. Мне нужно определить его до определения LOCAL_SRC_FILES , но, конечно, после include $(CLEAR_VARS) тогда он работает.