0

我有一个使用 Android NDK 的 Android 项目。

在文件Application.mk中,我使用了一个名为MYDIRECTIVE的自定义指令:

APP_CFLAGS := -DMYDIRECTIVE=TEST

在 .cpp 文件中,我想测试它的值:

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

问题是我收到MYDIRECTIVE is unknown消息。

当我使用V=1选项编译时,我在编译中看到指令:

 -MYDIRECTIVE=TEST

我尝试使用'TEST'TEST"TEST"进行测试,但仍然出现错误。

有什么帮助吗?

4

1 回答 1

1

您不能使用 #if指令来检查字符串是否相等。正如GCC 文档中所说:

`#if' 指令允许您测试算术 表达式的值。

无论如何,在 C 中,您不会通过 using==而是通过 using 来比较字符串strcmp()。并且预处理器不能使用strcmp().

也许您可能想MYDIRECTIVETEST改用:

#ifdef MYDIRECTIVETEST
/* do some stuff */
#else
#error MYDIRECTIVETEST is unknown
#endif
于 2013-02-21T15:12:25.890 回答