2013-02-21 57 views
0

我有一個Android項目,使用Android NDK。Android NDK測試指令值

在文件Application.mk,我用MYDIRECTIVE命名的自定義指令:

APP_CFLAGS := -DMYDIRECTIVE=TEST 

而在.cpp文件,我想測試它的價值:

#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