我使用jni创建了一个Android项目。现在我想使用预处理器宏来区分lite和完整版本。它应该是这样的:
#ifdef LITE
auto label = LabelTTF::create("Hello Cocos2dx Lite", "Arial", 24);
#else
auto label = LabelTTF::create("Hello Cocos2dx Full", "Arial", 24);
#endif
为此,我在Android.mk中的APP_CPPFLAGS中定义了一个变量,如下所示:
APP_CPPFLAGS += -DLITE
不幸的是,该应用程序完全忽略它,我仍然看到标签“Hello Cocos2dx Full”。 但是当我把它放在Application.mk中时,同一行也可以工作。
答案 0 :(得分:8)
APP_CPPFLAGS
和所有其他 APP _ make变量应在 Application.mk 中设置。对于每个模块的更改,请使用LOCAL_CPPFLAGS
或LOCAL_CFLAGS
答案 1 :(得分:2)
Android.mk文件中定义的位置错误。
我需要在定义LOCAL_SRC_FILES
之前定义它,但当然在include $(CLEAR_VARS)
之后它才有效。