opencv3.4编译安装
Pre.前期准备
下载OpenCV源码包
进入OpenCV官方下载页面https://opencv.org/releases.html
选择Sources类型 下载(这里以Opencv3.4.0为例)
1.安装依赖包
sudo apt-get install cmake
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev
2.编译 opencv
解压之前下载好的源码包tar zcvf Opencv压缩包名称.tar.gz 想要解压的路径
进入OpenCV源码目录(总有zz在根目录进行下面的操作,在这里强调一下,动动脑子!)
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make
sudo make install
所涉及的命令具体含义自行学习CMake的基本操作
3.添加路径
配置一些OpenCV的编译环境首先将OpenCV的库添加到路径,从而可以让系统找到
sudo gedit /etc/ld.so.conf.d/opencv.conf
执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加
/usr/local/lib
执行如下命令使得刚才的配置路径生效
sudo ldconfig
配置bash
sudo gedit /etc/bash.bashrc
在最末尾添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存,执行如下命令使得配置生效
source /etc/bash.bashrc
更新
sudo updatedb
4.测试
至此所有的配置都已经完成
下面用一个小程序测试一下
cd到opencv-3.4.0/smaples/cpp/example_cmake目录下
我们可以看到这个目录里官方已经给出了一个cmake的example我们可以拿来测试下
按顺序执行
cmake .
make
./opencv_example
即可看到打开了摄像头,在左上角有一个hello opencv 即表示配置成功
5.编写程序
把opencv-3.4.0/samples/cpp/example_cmake中的Makefile和CMakeLists.txt复制一份到源文件同级目录,用4 中方法编译执行
6.问题
error0:
在编译过程中会涉及到ippicv的下载,有时候下载很慢或者下载不能成功,解决方案有两种:
1.开启 科学上网
2.可以先单独下载ippicv_linux_20151201.tgz之后,把其移动到终端所提示的路径(终端会提示该路径找不到文件
移动的时候,可以另外打开一个终端操作
下载地址https://github.com/opencv/opencv_3rdparty/branches/all
(版本视终端提示而定)
error1:
lib/libopencv_videoio.so.3.1.0: undefined reference to `gst_app_sink_pull_sample’
collect2: error: ld returned 1 exit status
modules/video/CMakeFiles/opencv_test_video.dir/build.make:388: recipe for target ‘bin/opencv_test_video’ failed
solution:
找到”OpenCVCompilerOptions.cmake”文件add_extra_compiler_option(-Werror=non-virtual-dtor)
一行添加 #http://stackoverflow.com/questions/27828740/opencv-3-0-videoio-error
error2:
GstMiniObjectClass’ does not name a type
solution2:
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev