其他分享
首页 > 其他分享> > Android.mk中的预处理器宏被忽略,但在Application.mk中有效

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