Android ndk APP_OPTIM如何在代码中体现?

Android ndk APP_OPTIM如何在代码中体现?,android-ndk,Android Ndk,在Application.mk中,您可以设置: APP_OPTIM := release APP_OPTIM := debug 如何在C++中发布/调试生成测试? 我假设有定义,所以我尝试了这个,但只记录“NOT”消息: #ifdef RELEASE LOGV("RELEASE"); #else LOGV("NOT RELEASE"); #endif #ifdef DEBUG LOGV("DEBUG"); #else LOGV("NOT DEBUG"); #e

在Application.mk中,您可以设置:

APP_OPTIM := release
APP_OPTIM := debug
如何在C++中发布/调试生成测试?

我假设有定义,所以我尝试了这个,但只记录“NOT”消息:

#ifdef RELEASE
    LOGV("RELEASE");
#else
    LOGV("NOT RELEASE");
#endif

#ifdef DEBUG
    LOGV("DEBUG");
#else
    LOGV("NOT DEBUG");
#endif

在android-ndk-r8b/build/core/add application.mk

ifeq ($(APP_OPTIM),debug)
  APP_CFLAGS := -O0 -g $(APP_CFLAGS)
else
  APP_CFLAGS := -O2 -DNDEBUG -g $(APP_CFLAGS)
endif
因此,为了回答您的问题:在NDK r8b(今天最新版本)中,您可以检查

#ifdef NDEBUG
// this is "release"
#else
// this is "debug"
#endif

但是你可以通过你的
Android.mk
Application.mk
添加任何其他编译标志,这取决于$(APP_OPTIM),如果你愿意的话。

那么你总是得到
-g
标志,即使是发布版本?我想知道为什么断点甚至对
APP\u OPTIM:=release
@sashoalm也有效:如果您愿意,您可以在Application.mk中设置
APP\u CFLAGS:=-g0
,更改断点