Linux下opencv环境搭建#
1. 安装#
从
opencv官网
下载源码sources包
选择版本4.2.0
解压
unzip opencv-4.2.0.zip cd opencv-4.2.0 mkdir build cd build
生成cmake编译信息
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
解释一下各个参数
CMAKE_BUILD_TYPE=Release\Debug
分为发布和调试两种
CMAKE_INSTALL_PREFIX
是安装位置
..
为从上级文件夹获取
编译
make -j7 #使用7核心进行编译
安装
sudo make install
2. 配置#
在
/etc/ld.so.conf.d/
文件夹下新建一个opencv4.conf, 里边
写入
/usr/local/lib
cd /etc/ld.so.conf.d/
sudo touch opencv4.conf #3.4.9版本就新建opencv3.conf
sudo sh -c 'echo "/usr/local/lib" > opencv4.conf #opencv3就一样替换
更新pkg-config: pkg-config使用来扫描opencv的存在的
sudo ldconfig
复制pc文件,要不然测试提示错误:you should add the directory containing opencv.pc
sudo cp -f /usr/local/lib/pkgconfig/opencv4.pc /usr/lib/pkgconfig/ #opencv4
sudo cp -f /usr/local/lib/pkgconfig/opencv.pc /usr/lib/pkgconfig/ #opencv
前面复制的路径,我自己的与我看到的教程中并不同,每个/usr/local/lib里都找一下能找到就行 后面的路径是pkg-config自动搜索的路径 引用freedestop
This variable is used to augment pkg-config's search path. On a typical Unix system, it will search in the directories /usr/lib/pkgconfig and /usr/share/pkgconfig. This will usually cover system installed modules. However, some local modules may be installed in a different prefix such as /usr/local. In that case, it's necessary to prepend the search path so that pkg-config can locate the .pc files.
测试:
pkg-config --libs opencv4
pkg-config --cflags opencv4
pkg-config --modversion opencv4 # 查看版本号
opencv3就将opencv4替换为opencv
添加环境变量是不用的, 这个是用来在编译时候指定Opencv版本用, 有的教程里有这部分,没必要:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/pkgconfig
export PKG_CONFIG_PATH
3. 卸载#
删掉opencv4.conf
文件,然后在编译的build文件下运行
sudo make uinstall
以上是Linux通用的编译方法, 但是对Arch系Linux不需要这么麻烦, 直接用源上编译好的即可:
sudo pacman -S opencv
依赖
sudo pacman -S opencv-samples qt5-base vtk
如果使用的是编译版本, 只需要指定opencv编译位置PATH_TO_BUILD : set(OpenCV_DIR PATH_TO_BUILD),我的CMakeLists.txt是:如果使用Arch社区仓库的OPencv4, 可以显式指定opencv版本find_package(OpenCV 4 REQUIRED )
.