1.准备工作:
安装各种OpenCV需要的库和工具:
sudo apt-get install build-essential cmake cmake-qt-gui libgtk2.0-devpkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev libjasper-dev libswscale-dev libjpeg62-dev pkg-config
这里的库是提供图片读写和视频读写的。
Cmake和cmake-qt-gui 是我们用来配置OPenCV的重要工具
在官网上下载OpenCV2.2.0的代码包。OPenCV2.2.0源代码也或多或少的有些错误。在后面的编译过程中,我们要进行修改的。并不推荐大家使用OPenCV2.2.0这个版本,换一个新的版本,能够少很多错误。而且可能一些工具对OpenCV的老版本已经放弃了支持。我的ffmeng就对这个版本进行支持了。
2.开始配置:
将源代码解压,并且在建立安装目录。
执行 cmake-gui 调出cmake
选择源代码目录和输出目录。
点击configure 选择默认的 use default native compiler 使用默认的编译器
Finish
等全部配置完成之后 去掉ffmeng
ffmeng是一个视频支持库。我在网上找到教程,安装成功了x264(安装ffmeng必须安装的)也成功安装了ffmeng 在cmake生成的配置清单中都可以看到ffmeng 1。说明我安装成功了,但是还是在编译到50%时显示 ffmeng XXXXXXXXXXX error。网上搜了一下,好像要改大量的源代码,所以我后来选择去掉ffmeng支持,因为我并不需要使用视频。
点击Generate在输出目录下生成make。
Cd 到输出目录。
执行指令 make
3.遇到的错误:
在make的时候遇到好多错误
error1:
error:'ptrdiff_t' does not name a type
在处理这个问题的时候,我们要看清楚错误是在哪个目录,哪一段代码。
在对应的代码下加上
usingstd::ptrdiff_t;
error2:
fatalerror linux/videodev.h: No such file or directory
在高版本的linux已经取消了对lib4vl的支持我们要自己来安装
sudoapt-get install libv4l-dev
并把/modules/highgui/src/cap_v4l.cpp
第217行
#include<linux/videodev.h>
改成
#include<libv4l-videodev.h>
error3:
undefinedreference to 'cvCreateCameraCapture_V4L(int)'
解决方案参考以下博客
http://blog.csdn.net/dayeshisir/article/details/6625400
继续编译
4.结束:
编译通过之后 执行 make install 默认将库都安装在 /usr/local/下
在执行
ldconfig 配置生效。
这篇文章,写的仓促,可能有错误忘记写上去了,望大家见谅。
参考博客:
http://cn.waterlin.org/CVCG/OpenCV-installation-error.html
http://blog.csdn.net/dayeshisir/article/details/6625400