2012-10-27 26 views
10

Trong Application.mk bạn có thể đặt:APP_OPTIM thể hiện bằng mã như thế nào?

APP_OPTIM := release 
APP_OPTIM := debug 

Làm thế nào tôi có thể kiểm tra cho phát hành/debug xây dựng trong C++?

tôi giả sử có những định nghĩa vì vậy tôi đã cố gắng này, nhưng chỉ "KHÔNG" thông điệp được ghi lại:

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

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

Trả lời

20

Trong android-ndk-r8b/build/core/add-application.mk chúng ta đọc:

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

Vì vậy, để trả lời câu hỏi của bạn: trong NDK r8b (mới nhất cho hôm nay), bạn có thể kiểm tra

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

Nhưng bạn có thể thêm bất kỳ bộ sưu tập nào khác n cờ qua số Android.mk hoặc Application.mk tùy thuộc vào $ (APP_OPTIM), nếu bạn muốn.

+0

Vì vậy, bạn luôn nhận được cờ '-g', ngay cả khi xây dựng bản phát hành? Và tôi đã tự hỏi tại sao các điểm ngắt hoạt động ngay cả đối với 'APP_OPTIM: = release'. – sashoalm

+1

@sashoalm: bạn có thể thay đổi điều đó, nếu bạn muốn, nếu bạn đặt 'APP_CFLAGS: = -g0' trong ** Application.mk ** –

Các vấn đề liên quan