在安装opencv3.1的过程中遇到了一些问题,在这里进行总结。
sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libvtk5-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev libtbb-dev
方法①:进入opencv官网,选择opencv3.1版本:https://opencv.org/releases.html
方法②:官网下载较慢,可以选择其他方式,例如:https://download.csdn.net/download/qq_35470725/10114300
将下载的压缩包移至指定位置解压,比如home下,终端执行:
cd opencv-3.1.0
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make
sudo make install
其中第四行命令也可以省略为
cmake ..
但要注意之后cmakelist.txt文件编写时的opencv路径问题。
如果出现错误,可能的原因是路径的问题,在下边会有详述。
若无报错,则安装完成。
cmake的过程中要下载ippicv_linux_20151201,由于网络的原因,这个文件经常会下载失败。
解决的办法是手动下载:ippicv_linux_20151201.tgz
下载完后替换opencv-3.1.0/3rdparty/ippicv/downloads/linux-*目录下的同名文件,重新cmake。
出现这种错误的原因是opencv的路径不对。解决的方法也有两种:
第一:
在CMakeLists.txt中find_package( OpenCV REQUIRED )这行代码后面添加一行代码指定OpenCV 的路径。添加这一行:
set(OpenCV_DIR /usr/local/share/OpenCV)
在我的电脑上默认OpenCV 安装在/usr/local/share/OpenCV路径下的。
但是我本人没有使用这种方案,因为这样的话岂不是每次编译程序都要手动添加opencv 的路径嘛,这样会很麻烦。
第二:
错误中会有这么一句警告:
Warning at /home/***/opencv-2.4.6.1/cmake/OpenCVConfig.cmake
这说明这个config配置文件出了问题,再看错误的原因:
it set OpenCV_FOUND to FALSE
所以,最直接的方法就是打开上边路径的OpenCVConfig.cmake文件,在最底下一行输出:
set(OpenCV_FOUND TRUE)
cmake通过。不用每次都修改cmakelist.txt文件了。
输入make指令后,会出现一大堆未定义引用的错误。例如:
对‘cvLoadImage’未定义的引用
对‘cvNamedWindow’未定义的引用
……
最简单的方法是:在CMakeLists.txt修改这一句
find_package(OpenCV [版本号] REQUIRED)
例如:
find_package( OpenCV 3.1.0 REQUIRED ) #修改这一句啊
注:数字3.1.0与前后都有一个空格