一,引言
起因是学长建议我们学一下c++为opencv做一下准备,本人有点急于求成就打算直接开始opencv了(其实是被牛魔的c++难到了又听说opencv用不到多少c++的内容then内心就开始动摇了捏~) 虽然但是也是经过了大半天的努力才把Ubuntu22.04镜像系统下的opencv配置好..
二,准备工作
1,当然是准备一个虚拟机啦~我用的是b站找的vmware(高级版虽然我也不知道高级在哪里)
2,准备Ubuntu的镜像,我是用的清华源镜像网站Index of /ubuntu-releases/22.04/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror提供的Ubuntu22.04.5的镜像。(真心建议用这个版本,本人在使用其他版本时都出现了或多或少的问题,除了红就是红。。)
3,准备opencv的解压包存进u盘里(毕竟用虚拟机去官网下opencv慢的要死)
三,opencv的安装
打开终端输入如下命令更新资源
sudo apt update
sudo apt upgrade//升级软件包
下载各种编译文件
sudo apt install g++
sudo apt install cmake
sudo apt install make
http://opencv.org如果不会Linux就去opencv官网下载只是速度超级慢而已反正我是在win上下好再传输进虚拟机的也可以去github上下载源码 git clone https://github.com/opencv/opencv.git
进入压缩包所在的文件夹通过如下命令解压opencv的压缩包
sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev libopenexr-dev libtbb-dev
也可以用unzip的命令即 unzip+文件名
解压好后进入opencv的文件在文件下创建一个名为build的文件夹
进入build文件下编译
cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=YES ..
安装
sudo make install
四,vscode的安装
vscode可以去官网直接下也可以跟opencv压缩包一样,也可以去Ubuntu自带的应用商店下载(不建议,听说报错很多反正我没这么下过),下载后查看一下自己opencv2的路径

我的如上,可以在include下创建一个opencv2的文件夹(别问为什么,听人劝)。用如下命令
sudo ln -s opencv4/opencv2 opencv2
五,使用vscode写opencv代码
先在home的opencv文件夹下创建一个code(其实不在这里创建也完全没有关系,但是我习惯这样)
再使用vscode打开此文件夹,code文件夹下创建.vscode文件夹,创建以下三个文件
// c_cpp_properties.json
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"/usr/local/include/opencv4", //请确保你的opencv opencv2头文件夹安装在这个目录
"/usr/local/include/opencv4/opencv2"
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "gnu17",
"cppStandard": "gnu++14",
"intelliSenseMode": "gcc-x64"
}
],
"version": 4
}
// launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "g++.exe - 生成和调试活动文件",
"type": "cppdbg", // 只能是cppdbg
"request": "launch", // launch:启动,attach:附加
"program": "${fileDirname}/${fileBasenameNoExtension}", // 需要调试的程序
"args": [], // 调试时传递给程序的参数
"stopAtEntry": false, // 调试时是否停在程序入口:{true:是,false:否}
"cwd": "${workspaceFolder}", // 工作目录
"environment": [], // 额外的环境变量
"externalConsole": false, // true:输出到外部终端;false:只输出到软件终端(有显示不全的可能)
"MIMode": "gdb",
"setupCommands": [ // 暂时不知道作用
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++ build active file", // 预编译任务名称,和tasks.json中的label必须相同
"miDebuggerPath": "/usr/bin/gdb" // 调试gdb路径
}
]
}
//tasks.json
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++ build active file",
"command": "/usr/bin/g++",
"args": [
"-g","-std=c++11",
"${file}", // 单个cpp文件
// "${workspaceFolder}/Demo/*.cpp", // 多个cpp文件
// "${workspaceFolder}/src/*.cpp",
"-o",
"${fileDirname}/${fileBasenameNoExtension}", // 要调试的程序,必须与launch.json文件中的"program"相同
"-I", "${workspaceFolder}/include", // 项目include文件
"-I", "$/usr/local/include", // opencv安装的include文件路径
// "-I", "$/usr/local/include/opencv4",
// "-I", "$/usr/local/include/opencv4/opencv2",
"-L", "$/usr/local/lib", //opencv安装的lib文件路径
"-l", "opencv_core", //.so文件,文件原名称“libopencv_core.so”,注意需去除“lib”
"-l", "opencv_imgproc",
"-l", "opencv_imgcodecs",
"-l", "opencv_video",
"-l", "opencv_ml",
"-l", "opencv_highgui",
"-l", "opencv_objdetect",
"-l", "opencv_flann",
"-l", "opencv_imgcodecs",
"-l", "opencv_photo",
"-l", "opencv_videoio",
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "test",
"isDefault": true
},
"detail": "调试器生成任务"
}
],
"version": "2.0.0"
}
完成后vscode页面如下

结束啦~~~(虽然看着很容易其实并不简单。。。)
题外话
牛魔的当初不知道是在哪个b站up找的ubuntu19版本的镜像装了三个小时频频报错,cmake版本也是低的离谱(最新版是3.35 我的直接来了个2.8),后来才知道这个版本早就不维护了,白忙活三小时,后来换了20版本虽然报错少了很多但是镜像源还是有些问题,包括网速什么的,换了22.04版本后才好了很多所以,真心建议用22.04版本的,(早晚一天我要逮着那个up一顿骂,,)
Comments 1 条评论
平时不用linux关键时刻就吃剩饭哈哈哈