0

Cインターフェイスを使用していますが、「ml.h」をインクルードしているときにndk-buildを実行すると、次のエラーが発生します。

In file included from /Users/user/android-ndk-r7c/sources/cxx-stl/gnu-libstdc++/include/bits/stl_algobase.h:61,
             from /Users/user/android-ndk-r7c/sources/cxx-stl/gnu-libstdc++/include/bits/stl_tree.h:62,
             from /Users/user/android-ndk-r7c/sources/cxx-stl/gnu-libstdc++/include/map:60,
             from /Users/user/android-opencv/OpenCV-2.3.1/share/OpenCV/../../include/opencv2/ml/ml.hpp:2022,
             from /Users/user/android-opencv/OpenCV-2.3.1/share/OpenCV/../../include/opencv/ml.h:46,
             from /Users/user/CarSafe/jni/blink_detection.c:7:
/Users/user/android-ndk-r7c/sources/cxx-stl/gnu-libstdc++/include/cstddef:51: error:   expected '=', ',', ';', 'asm' or '__attribute__' before ':' token

「ml.h」のインクルードをコメントアウトすると、正常にコンパイルされ、正常に実行されます。

問題は、Cコードでopencvsvmライブラリを使用したいということです。私は何が間違っているのですか?または、C ++コードとしてコンパイルし、C++内でml.hppヘッダーを使用する必要があります。これは、プロジェクト内の他のコードで機能します。

4

1 に答える 1

0

出力の最後の行を注意深く見てください。

/Users/user/android-ndk-r7c/sources/cxx-stl/gnu-libstdc++/include/cstddef:51: error:   expected '=', ',', ';', 'asm' or '__attribute__' before ':' token

質問に書いたことに基づいて、C コンパイラを使用して、C++ 標準ライブラリを使用してコードをコンパイルしようとしているようです。

また、私は OpenCV に精通していませんが、コードを C++ としてコンパイルし、「ml.h」を含めることができるはずだと思います。C++ ヘッダーは、常に *.hpp 拡張子を使用するとは限りません。

于 2012-04-14T21:44:16.307 に答える