vscode+linux+opencv环境配置

一、搭建编译环境

在Linux系统下使用C++开发opencv项目,首先要搭建C/C++开发环境。

1、在终端输入以下代码,以安装C/C++编译器(GCC/G++)。

bash 复制代码
sudo apt install gcc
sudo apt install g++

2、安装cmake编译工具

(在openCV2.2版本之后,需要用cmake来生成Makefile文件,在安装OpenCV之前,要安装cmake以及cmake依赖库)

bash 复制代码
sudo apt install cmake

三、安装OpenCV

1、在OpenCV官网下载sources。

官网源代码

2、打开安装包所在位置,在终端输入:

bash 复制代码
unzip opencv-x.x.x.zip

3、解压完成后,在当前目录下会生成opencv-x.x.x文件夹,在终端输入:

(进入该文件夹)

bash 复制代码
cd opencv-x.x.x

4、在此路径下新建一个编译目录build。

bash 复制代码
mkdir build

5、进行cmake-make编译

为了避免出现下面错误

使用pkg-config和opencv时报错

Package opencv was not found in the pkg-config search path.

Perhaps you should add the directory containing `opencv.pc'

to the PKG_CONFIG_PATH environment variable

最好使用命令

bash 复制代码
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_GENERATE_PKGCONFIG=ON ..

OPENCV_GENERATE_PKGCONFIG配置表示直接生成配置信息,不用手动配置环境变量等信息。

或使用下面命令,但需要手动配置环境变量信息。

bash 复制代码
cmake ..
make -j2

make -j4是指4核同时编译,可以根据自己的核数进行调整,比如-j5,核数越多编译速度就越快。

以上操作如果不成功的话尝试以下命令

bash 复制代码
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j4

6、在终端输入sudo make install进行安装

bash 复制代码
sudo make install

如果不成功也可以尝试安装opencv的依赖

bash 复制代码
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev

7、验证

bash 复制代码
pkg-config --cflags --libs opencv4

8、为了在vscode中使用,添加软连接

bash 复制代码
ln -s /usr/local/include/opencv4/opencv2 /usr/include/opencv2

9、c++运行常见错误

找不到任务C/C++: g++.exe build active file

解决方法:只要将 launch.json文件中的preLaunchTask参数改为和tasks.json中label值一样,这个问题就能解决。

.o not exists:linux将launch.json的"program": " f i l e D i r n a m e / {fileDirname}/ fileDirname/{fileBasenameNoExtension}.o"改成"program": " f i l e D i r n a m e / {fileDirname}/ fileDirname/{fileBasenameNoExtension}"

相关推荐
望获linux28 分钟前
【Linux基础知识系列】第四十三篇 - 基础正则表达式与 grep/sed
linux·运维·服务器·开发语言·前端·操作系统·嵌入式软件
眠りたいです38 分钟前
Mysql常用内置函数,复合查询及内外连接
linux·数据库·c++·mysql
我的泪换不回玫瑰40 分钟前
Linux系统管理命令
linux
jjkkzzzz2 小时前
Linux下的C/C++开发之操作Zookeeper
linux·zookeeper·c/c++
二当家的素材网2 小时前
Centos和麒麟系统如何每天晚上2点10分定时备份达梦数据库
linux·数据库·centos
挑战者6668882 小时前
CentOS 系统高效部署 Dify 全攻略
linux·运维·centos
DD_陈东东2 小时前
gdbus 常用数据结构与库函数
linux
DIY机器人工房3 小时前
代码详细注释:ARM-Linux字符设备驱动开发案例:LCD汉字输出改进建议开发板断电重启还能显示汉字,显示汉字位置自定义
linux·嵌入式·文件io·diy机器人工房
得物技术3 小时前
eBPF 助力 NAS 分钟级别 Pod 实例溯源|得物技术
linux
Rudon滨海渔村3 小时前
解决阿里云ubuntu内存溢出导致vps死机无法访问 - 永久性增加ubuntu的swap空间 - 阿里云Linux实例内存溢出(OOM)问题修复方案
linux·运维·ubuntu