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では、文字列を使用して比較するのではなく、使用して比較し==ますstrcmp()。また、プリプロセッサは使用できませんstrcmp()

代わりに使用したいかもしれませんMYDIRECTIVETEST

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