2012-10-27 15 views
10

Application.mk में आप सेट कर सकते हैं:APP_OPTIM कोड में कैसे प्रकट होता है?

APP_OPTIM := release 
APP_OPTIM := debug 

मैं सी ++ में रिलीज/डीबग बिल्ड के लिए कैसे परीक्षण करूं?

मैं वहाँ परिभाषित करता है मैं इस की कोशिश की है इसलिए कर रहे हैं संभालने हूँ, लेकिन केवल "नहीं" संदेश लॉग ऑन हैं:

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

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

उत्तर

20

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 

लेकिन आप किसी भी अन्य compilatio जोड़ सकते हैं यदि आप चाहते हैं तो $ (APP_OPTIM) के आधार पर आपके Android.mk या Application.mk के माध्यम से n झंडे।

+0

तो क्या आपको हमेशा रिलीज के निर्माण के लिए '-g' ध्वज मिलता है? और मैं सोच रहा था कि ब्रेकपॉइंट्स 'APP_OPTIM: = release' के लिए भी क्यों काम करते हैं। – sashoalm

+1

@ सशोल्म: यदि आप चाहें तो आप इसे बदल सकते हैं, अगर आप 'APP_CFLAGS: = -g0' ** **.mk ** सेट करते हैं –

संबंधित मुद्दे