Android.mk中的预处理器宏被忽略,但在Application.mk中有效
作者:互联网
我使用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中时,同一行也可以工作.
>为什么?
>我如何定义变量,以便我可以为full和lite版本提供两个不同的makefile?
解决方法:
应在Application.mk中设置APP_CPPFLAGS和所有其他APP_ make变量.对于每个模块的更改,请使用LOCAL_CPPFLAGS或LOCAL_CFLAGS
标签:android,makefile,android-ndk,preprocessor,java-native-interface 来源: https://codeday.me/bug/20190718/1491761.html