1

この問題は、JunoEclipseにアップグレードしたときに始まったと思います。C /C++ビルド環境もおそらく同時にアップグレードされたと思います。NDKはアップグレードされませんでした。

いくつかのプラットフォームでコンパイルされる大量のCコードがあります。crystax-ndk(r6)を使用してC++コードをコンパイルしています。Android用にコンパイルするタイミングを知るために、Android.mkで次のように定義しました。

LOCAL_CFLAGS := -DANDROID_NDK \
            -DDISABLE_IMPORTGL \
                 ...

次に、一部のファイルには、プラットフォームに応じて異なるヘッダーが含まれます

#ifdef ANDROID_NDK
     ...

私たちのコードはうまくコンパイルされ、うまく動作しているようです。ただし、特定のファイルを開くと、C /C++コードアナライザーは多くのエラーを検出します。これは、アナライザーがANDROID_NDKで定義された変数を認識していないためと思われます。

コードアナライザーがコンパイラーと同じ#definesを使用していない理由はありますか?コードはほとんど編集できず、アナライザーが報告しているすべての偽のエラーがあります。

4

2 に答える 2

1

あなたが参照しているアナライザーについてコメントしているのを見ました。

Eclipse CDT(C / C ++ Development Toolkit)は、Android.mkの解析をサポートしていませんが、これを書いている時点では、NDKプラグインもその機能を追加していません。

考えられる(醜い/迷惑な)回避策:欠落している定義を設定するヘッダーファイルを設定し、そのヘッダーファイルをすべてのファイルにインクルードします。

于 2012-12-18T00:41:50.433 に答える
0

Android.mkLOCAL_CPPFLAGSのC++ファイルとLOCAL_CFLAGSCファイルに使用します

于 2012-12-17T21:52:58.150 に答える