在開發板上安裝了OpenCV 3.4,因為使用OpenGL ES 2.0的問題,使用cpp會造成編譯錯誤,所以項目開始就使用C編碼,當開始加入圖片處理功能的時候(基於OpenCV)又出問題了,編譯提示
/usr/include/opencv2/core/cvdef.h:509:1: error: unknown type name ‘namespace’ namespace cv { ^ /usr/include/opencv2/core/cvdef.h:509:14: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token namespace cv {
閱讀/usr/include/opencv2/core/cvdef.h代碼后發現是有一個宏控制的,
// Integer types portatibility #ifdef OPENCV_STDINT_HEADER #include OPENCV_STDINT_HEADER #else #if defined(_MSC_VER) && _MSC_VER < 1600 /* MSVS 2010 */ namespace cv { ... #endif
需要在編譯命令gcc -c ... 加上-DOPENCV_STDINT_HEADER="<stdint.h>"