2013-02-21 97 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