2013-02-21 2 views
0

Android NDK를 사용하는 Android 프로젝트가 있습니다. Android NDK 테스트 지시 값

APP_CFLAGS := -DMYDIRECTIVE=TEST 

그리고 .cpp 파일에

, 나는 그 값 테스트 싶습니다 : 파일 Application.mk에서

, 나는라는 이름의 사용자 정의 지시 MYDIRECTIVE를 사용

#ifdef MYDIRECTIVE 
#if MYDIRECTIVE == 'TEST' 
/* do some stuff */ 
#else 
#error MYDIRECTIVE is unknown 
#endif 
#endif 

을 그리고 문제는 MYDIRECTIVE을 알 수 없으므로 메시지입니다. 내가 V = 1 옵션을 사용하여 컴파일하면

, 나는 컴파일에 지침을 참조하십시오

-MYDIRECTIVE=TEST 

내가"TEST"로, TEST으로, 'TEST'으로 테스트를했는데, 나는 여전히 오류가 발생합니다.

어떤 도움이 필요합니까?

답변

1

#if 지시문을 사용하여 문자열 동일성을 확인할 수 없습니다. 바와 같이 in the GCC documentation 말했다 :

은`# 만약 '지시자는 당신이 산술 식의 값을 테스트 할 수 있습니다.

어쨌든 C에서는 ==을 사용하지 않고 strcmp()을 사용하여 문자열을 비교하지 않습니다. 그리고 전처리 기는 strcmp()을 사용할 수 없습니다.

어쩌면 당신은 대신 MYDIRECTIVETEST을 사용할 수 있습니다 :

#ifdef MYDIRECTIVETEST 
/* do some stuff */ 
#else 
#error MYDIRECTIVETEST is unknown 
#endif