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}"

相关推荐
捧月华如16 分钟前
Linux 系统性能压测工具全景指南(含工程实战)
linux·运维·服务器
YMWM_23 分钟前
export MPLBACKEND=Agg命令使用
linux·python
想唱rap1 小时前
线程的同步与互斥
linux·运维·服务器·数据库·mysql
格林威1 小时前
SSD 写入速度测试命令(Linux)(基于工业相机高速存储)
linux·运维·开发语言·人工智能·数码相机·计算机视觉·工业相机
勇闯逆流河1 小时前
【LInux】linux控制(进程替换,自主shell的实现详解)
linux·运维·服务器
IMPYLH2 小时前
Linux 的 ls 命令
linux·运维·服务器·bash
笨笨饿2 小时前
33_顺序表(待完善)
linux·服务器·c语言·嵌入式硬件·算法·学习方法
wwj888wwj3 小时前
Ansible基础(复习1)
linux·运维·ansible
yj_xqj3 小时前
Linux network启动报错 && nmcli 的使用
linux·运维·服务器
程序猿编码3 小时前
eBPF代理:让SSH进程“溯源”,找到背后的客户端IP
linux·tcp/ip·ssh·ebpf