2012-04-14 11 views
0

ich die C-Schnittstelle bin mit, und ich erhalte die folgenden Fehler snipped wenn ich NDK-build laufen, wenn ich schließe "ml.h":kann nicht importiert ml.h in Android 2.3 opencv

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 

Wenn ich das Include für "ml.h" auskommentiere, kompiliert es gut und läuft normal.

Das Problem ist, ich möchte die opencv-Bibliothek in meinem C-Code verwenden. Was mache ich falsch? Oder sollte ich es nur als C++ - Code kompilieren und den ml.hpp-Header in C++ verwenden. Dies funktioniert für anderen Code im Projekt.

Antwort

0

Achten Sie genau auf die letzte Zeile der Ausgabe:

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

Nach dem, was Sie in Ihrer Frage schrieb es scheint, Sie versuchen, einen C-Compiler zu verwenden, um Code zu kompilieren, die C++ Standard-Bibliothek.

Auch wenn ich nicht mit OpenCV vertraut bin, würde ich annehmen, dass Sie in der Lage sein sollten, Ihren Code als C++ zu kompilieren und "ml.h" noch einzuschließen. C++ - Header verwenden nicht immer die Erweiterung * .hpp.

Verwandte Themen