2012-10-27 11 views
10

W Application.mk można ustawić:W jaki sposób APP_OPTIM występuje w kodzie?

APP_OPTIM := release 
APP_OPTIM := debug 

Jak mogę przetestować za zwolnienie/debugowania w C++?

Jestem zakładając istnieją definiuje więc próbowałem tego, ale tylko „NIE” wiadomości są rejestrowane:

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

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

Odpowiedz

20

W android-ndk-r8b/build/core/add-application.mk czytamy:

ifeq ($(APP_OPTIM),debug) 
    APP_CFLAGS := -O0 -g $(APP_CFLAGS) 
else 
    APP_CFLAGS := -O2 -DNDEBUG -g $(APP_CFLAGS) 
endif 

Tak więc, aby odpowiedzieć twoje pytanie: w NDK r8b (najnowsze na dziś) możesz sprawdzić

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

Ale możesz dodać inne kompilacje n flag za pomocą Twojego Android.mk lub Application.mk w zależności od $ (APP_OPTIM), jeśli chcesz.

+0

Zawsze otrzymujesz flagę '-g', nawet w przypadku wersji Release? I zastanawiałem się, dlaczego punkty przerwania działają nawet dla 'APP_OPTIM: = release'. – sashoalm

+1

@sashoalm: możesz to zmienić, jeśli ustawisz 'APP_CFLAGS: = -g0' w ** Application.mk ** –

Powiązane problemy