OpenCV在linux平臺的編譯、安裝和使用
- 一、下載跨平臺編譯工具 CMake
- 二、解壓、編譯 CMake
- 三、下載 OpenCV
- 四、編譯 OpenCV
- 五、編譯運用程式
- 六、編譯過程出錯的處理
1、 opencv-2.4.8/modules/core/include/opencv2/core/types_c.h : __m128d was not declared in this scope
解決方法:增加
# if defined __SSE2__
# undef __SSE2__
#endif
2、 /home/users/lvwenxian/lvwenxiandisk/freedom/object-mining/opencv-2.4.8/modules/core/include/opencv2/core/operations.hpp : addParam redifined
解決方法:刪掉前面定義的那一個
3、 opencv-2.4.8/modules/highgui/src/grfmt_png.cpp:388: error: `Z_FIXED' was not declared in this scope
原因是包含了系統標頭檔案路徑/usr/include/zlib.h , 對應的zlib版本太老。解決方法:
開啟opencv-2.4.8/modules/highgui/src/grfmt_png.cpp ,增加:
#define Z_FIXED 4
4、 opencv-2.4.8/modules/highgui/src/grfmt_tiff.cpp:463: error: `PREDICTOR_HORIZONTAL' was not declared in this scope
原因同上,tiff庫版本太老, 增加: #define PREDICTOR_HORIZONTAL 2
5、 make64[2]: *** [modules/java/core+CvException-jdoc.java] 錯誤 1
make64[1]: *** [modules/java/CMakeFiles/opencv_java.dir/all] 錯誤 2
把CMakeLists.txt中java、Java相關配置都刪掉,不便宜這些東西。
然後重新執行編譯過程
6. opencv 2.4.x 編譯時,出現的 freak.cpp:437: error: unable to find a register to spill in class 'GENERAL_REGS'錯誤。 參見: http://blog.csdn.net/cheng1988shu/article/details/9704041