Я создал проект 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.
APP_CPPFLAGS
и все другие переменные APP_ make должны быть установлены в Application.mk . Для изменений в модуле используйте LOCAL_CPPFLAGS
или LOCAL_CFLAGS
Позиция определения в файле Android.mk была неправильной. Мне нужно определить его до определения LOCAL_SRC_FILES
, но, конечно, после include $(CLEAR_VARS)
тогда он работает.