ubuntu16.04 编译opencv4和opencv_contrib
下载源码
安装最新的cmake
- 下载 cmake 压缩版或者sh文件
- 解压或运行,我这里放到了
/home/username/cmake-3.13
目录下 - 创建软链接
ln -sf /home/username/cmake-3.13/bin/* /usr/bin/
使用cmake-gui配置cmake文件
- configure (需要下载opencv的依赖,可能需要科学上网)
- 勾选BUILD_opencv_world
- 配置OPENCV_EXTRA_MODELS_PATH
- 再次运行configure
- 运行generate
make && install
- 关闭gui界面,进到build目录下
cd opencv/opencv4/build/
make
sudo make install
添加环境变量
其实ubuntu和windows并无区别,你要想让你的依赖opencv库的外部程序能够运行,一样需要设置opencv的环境变量,只是配置方法略有不同。
如果遇到
error while loading shared libraries: libopencv_.so.: cannot open shared object file: No such file or directory
类似问题,就是环境变量没设置,照着下面的步骤修改一下就ok了。
1. 首先设置库(make install 后生成的.so文件)的环境变量
- 打开/etc/ld.so.conf文件(/etc属于根目录,需要管理员权限sudo)
sudo gedit /etc/ld.so.conf
- 在文件中加入一行include /usr/local/lib(/usr/local是makefile中的CMAKE_PREFIX_INSTALL的值,windows下的文件安装目录,默认是/usr/local,也可以自己修改)
- 保存文件,执行命令
sudo ldconfig
2. 修改~/.bashrc文件,加入环境变量
- 打开~/.bashrc 文件
gedit ~/.bashrc
- 文件末尾加入一行export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH"
(注意:如果上面不是/usr/local,而是自定义路径,这里相应地也要修改)
- source ~/.bashrc