一、搭建编译环境
在Linux系统下使用C++开发opencv项目,首先要搭建C/C++开发环境。
1、在终端输入以下代码,以安装C/C++编译器(GCC/G++)。
sudo apt install gcc
sudo apt install g++
2、安装cmake编译工具
(在openCV2.2版本之后,需要用cmake来生成Makefile文件,在安装OpenCV之前,要安装cmake以及cmake依赖库)
sudo apt install cmake
二、安装相关依赖库
1、安装libgtk
(GTK是一个Linux平台下基于Xwindows图形窗口的图形用户编程接口工具,可以借助它开开发Linux平台下基于Xwindows的图形用户界面)
sudo apt install libgtk2.0-dev
2、安装pkg-config
(在Linux系统下安装第三方软件时要用到第三方软件的头文件以及相关库,在编译时指定库和头文件是十分麻烦的,而pkg-config能够把这些头文件和库文件的位置指出来给编译器使用)
sudo apt install pkg-config
三、安装OpenCV
1、在OpenCV官网下载sources。
(https://opencv.org/releases/)
2、打开安装包所在位置,在终端输入:
(解压安装包)
unzip opencv-4.5.5.zip
3、解压完成后,在当前目录下会生成opencv-x.x.x文件夹,在终端输入:
(进入该文件夹)
cd opencv-x.x.x
4、在此路径下新建一个编译目录build。
mkdir build
5、进行cmake-make编译
cmake ..
make -j2
make -j2是指2核同时编译,可以根据自己的核数进行调整,比如-j5,核数越多编译速度就越快。
以上操作如果不成功的话尝试以下命令
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j2
6、在终端输入sudo make install进行安装
sudo make install
四、配置环境变量
1、进入root权限,在终端输入:
sudo -i
vim /etc/ld.so.conf.d/opencv.conf
2、在vim中进入编辑模式输入:/usr/local/lib,退出保存。
- 按下“i”进入插入模式
- 输入“/usr/local/lib”
- 按下“Esc”退出插入模式
- 保存并退出Vim:按下'Shift'键,然后输入':',接着输入‘wq’并按下'Enter'。
3、在终端输入:vim /etc/bash.bashrc,进入bash.bashrc文件,在尾行输入:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lic/pkgconfig
export PKG_CONFIG_PATH
4、配置成功,退出root。
exit
五、OpenCV测试
1、在终端输入:ldconfig -v | grep opencv
(检查opencv是否安装成功)
六、配置中可能遇到的问题
1、如果出现Perhaps you should add the directory containing `opencv.pc' to the PKG_CONFIG_PATH environment variable的报错
https://blog.csdn.net/cassidybo/article/details/125984893?ops_request_misc=&request_id=&biz_id=102&utm_term=Linux%20opencv%E5%AE%89%E8%A3%85&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-125984893.nonecase&spm=1018.2226.3001.4187https://blog.csdn.net/cassidybo/article/details/125984893?ops_request_misc=&request_id=&biz_id=102&utm_term=Linux%20opencv%E5%AE%89%E8%A3%85&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-125984893.nonecase&spm=1018.2226.3001.41872、在尝试在linux系统中对opencv进行环境安装和配置时出现了一下报错sudo -i root@rose-virtual-machine:~# vim /etc/ld.so.conf.d/opencv.conf root@rose-virtual-machine:~# vim /etc/bash.bashrc root@rose-virtual-machine:~# ldconfig -v | grep opencv /sbin/ldconfig.real: 多次给出路径“/usr/local/lib” (from /etc/ld.so.conf.d/opencv.conf:1 and /etc/ld.so.conf.d/libc.conf:2) /sbin/ldconfig.real: 无法对 /usr/local/lib/x86_64-linux-gnu 进行 stat 操作: 没有那个文件或目录 /sbin/ldconfig.real: 多次给出路径“/usr/lib/x86_64-linux-gnu” (from /etc/ld.so.conf.d/x86_64-linux-gnu.conf:4 and /etc/ld.so.conf.d/x86_64-linux-gnu.conf:3) /sbin/ldconfig.real: 多次给出路径“/lib/x86_64-linux-gnu” (from <builtin>:0 and /etc/ld.so.conf.d/x86_64-linux-gnu.conf:3) /sbin/ldconfig.real: 多次给出路径“/usr/lib/x86_64-linux-gnu” (from <builtin>:0 and /etc/ld.so.conf.d/x86_64-linux-gnu.conf:3) /sbin/ldconfig.real: 多次给出路径“/usr/lib” (from <builtin>:0 and <builtin>:0) /sbin/ldconfig.real: /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 is the dynamic linker, ignoring root@rose-virtual-machine:~#
sudo apt-get install libopencv-dev
使用包管理软件(如‘apt’或‘yum’)来安装opencv。