ubuntu上安装vscode以及opencv4.2教程及相关的调试配置

转载自ubuntu16.04/18.04安装vscode和opencv3.4.6教程
opencv4以上的版本,vscode的tasks.json改成opencv4,如下:

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "g++",
            "args": [
                "-g",
                "-std=c++11",
                "${file}",
                "-o",
                "${fileBasenameNoExtension}.main.out",
			        "-I", "/usr/local/include",
			        "-I", "/usr/local/include/opencv4",
			        "-L", "/usr/local/lib",
			        "-l", "opencv_core",
			        "-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"
            ],
            "problemMatcher":{
                "owner": "cpp",
                "fileLocation":[
                    "relative",
                    "${workspaceFolder}"
                ],
                "pattern":[
                    {
                        "regexp": "^([^\\\\s].*)\\\\((\\\\d+,\\\\d+)\\\\):\\\\s*(.*)$",
                        "file": 1,
                        "location": 2,
                        "message": 3
                    }
                ]
            },
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}


一、Opencv3.4.6

1.install

  1. 去官网下载opencv,在本教程中选用的时opencv3.4.6,其他版本的配置方法异曲同工。
    下载链接http://opencv.org/releases.html,选择sources版本

  2. 进入下载的路径,解压下载下来的zip包

cd XXX
unzip opencv-3.4.6.zip

   
   
  • 1
  • 2
  1. 安装一些东西(哪个不行就算了)
sudo apt-get update
sudo apt-get install vim
sudo apt-get install g++
sudo apt-get install gcc
sudo apt-get install cmake
sudo apt-get install build-essential
sudo apt-get install libgtk2.0-dev
sudo apt-get install libavcodec-dev
sudo apt-get install libavformat-dev
sudo apt-get install libswscale-dev 
sudo apt-get install libatlas-base-dev 
sudo apt-get install gfortran
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt-get update
sudo apt-get install libjasper1 libjasper-dev

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  1. 进入到解压后的文件包中,创建编译文件夹
cd XXX/opencv-3.4.6
mkdir Release
cd Release

   
   
  • 1
  • 2
  • 3
  1. CMAKE
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

   
   
  • 1

如果以下错误:

qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file     or         directory

   
   
  • 1

执行以下指令:

sudo apt-get install qt5-default

   
   
  • 1
  1. MAKE
sudo make

   
   
  • 1
  1. 安装
sudo make install

   
   
  • 1
  1. 执行完毕后OpenCV编译过程就结束了,接下来就需要配置一些OpenCV的编译环境首先将OpenCV的库添加到路径,从而可以让系统找到
sudo gedit /etc/ld.so.conf.d/opencv.conf 

   
   
  • 1

执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加

/usr/local/lib  

   
   
  • 1

在这里插入图片描述

  1. 执行如下命令使得刚才的配置路径生效
sudo ldconfig  

   
   
  • 1
  1. 配置bash
sudo gedit /etc/bash.bashrc  

   
   
  • 1

在最末尾添加

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH  

   
   
  • 1
  • 2

保存,执行如下命令使得配置生效

source /etc/bash.bashrc  

   
   
  • 1
  1. 更新
sudo updatedb  

   
   
  • 1

2.test

cd到opencv-3.4.1/samples/cpp/example_cmake目录下
我们可以看到这个目录里官方已经给出了一个cmake的example我们可以拿来测试下

cd ..
cd samples
cd cpp
cd example_cmake
cmake .
make
./opencv_example

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

参考:
ubuntu16.04安装opencv3.4.1教程
Ubuntu16.04安装OpenCV3.4.2


二、VScode

1.下载

先下好gcc、g++

sudo apt-get update
sudo apt-get install gcc
sudo apt-get install g++

   
   
  • 1
  • 2
  • 3

下载VScode:
图形推荐(一键式操作,第一推荐)在ubuntu18.04版本安装vscode
在线umake:Ubuntu 16.04 安装VSCode
本地deb(不会再有问题,第二推荐)
在官网里(https://code.visualstudio.com/Download)里下载Linux的.deb格式
然后安装

cd 文件存在的位置

   
   
  • 1
sudo dpkg -i xxx.deb

   
   
  • 1

2.配置

下面分为安opencv和不安的情况

(1)安装c/c++插件(都必须有)

首先通过左边栏的Extension在这里插入图片描述栏目安装C++插件

在这里插入图片描述

(2)建立工程(都必须有)

由于VScode是以文件夹的形式管理工程的,因此我们首先新建一个文件夹

然后通过VScode打开此文件夹:File→Open Folder

新建main.cpp文件(Ctrl+N)并输入程序:

#include<iostream>
using namespace std;
int main()
{
	cout<<"Hello World\n";
	return 0;
}

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

保存Ctrl+S,记住要写后缀(.cpp),不然
Ubuntu下VScode编译报错:File not recongnized不可识别的文件格式

(3)配置launch.json(都必须有)

点击左侧的Debug按钮选择添加配置(Add configuration),然后选择C++(GDB/LLDB),然后选个Default,将自动生成launch.json文件.
在这里插入图片描述

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceRoot}/${fileBasenameNoExtension}.main.out",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceRoot}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "build"
        }
    ]
}

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

(4)配置tasks.json(不安装opencv的情况)

Ctrl+Shift+P打开面板

输入Task:Configure Default Build Task
(有的要输入Edit,再输入Task:Configure Default Build Task)
在这里插入图片描述

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "command": "g++",
    "args": [
        "-g", 
        "-std=c++11", 
        "${file}", 
        "-o", 
        "${fileBasenameNoExtension}.main.out",
    ],// 编译命令参数
    "problemMatcher":{
        "owner": "cpp",
        "fileLocation":[
            "relative",
            "${workspaceFolder}"
        ],
        "pattern":[
            {
                "regexp": "^([^\\\\s].*)\\\\((\\\\d+,\\\\d+)\\\\):\\\\s*(.*)$",
                "file": 1,
                "location": 2,
                "message": 3
            }
        ]
    },
    "group": {
        "kind": "build",
        "isDefault": true
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

(5)配置tasks.json(安装opencv的情况)

Ctrl+Shift+P
输入Edit
选择Task:Configure Default Build Task
在这里插入图片描述

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "g++",
            "args": [
                "-g",
                "-std=c++11",
                "${file}",
                "-o",
                "${fileBasenameNoExtension}.main.out",
			        "-I", "/usr/local/include",
			        "-I", "/usr/local/include/opencv",
			        "-I", "/usr/local/include/opencv2",
			        "-L", "/usr/local/lib",
			        "-l", "opencv_core",
			        "-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"
            ],
            "problemMatcher":{
                "owner": "cpp",
                "fileLocation":[
                    "relative",
                    "${workspaceFolder}"
                ],
                "pattern":[
                    {
                        "regexp": "^([^\\\\s].*)\\\\((\\\\d+,\\\\d+)\\\\):\\\\s*(.*)$",
                        "file": 1,
                        "location": 2,
                        "message": 3
                    }
                ]
            },
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53

(6)c_cpp_properties.json(安opencv的情况)

Ctrl+Shift+P
输入Edit
选择C/C++:Edit Configurations(JSON)
在这里插入图片描述

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "/usr/include",
                "/usr/local/include/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "/usr/bin/cpp",
            "cStandard": "c11",
            "cppStandard": "c++11",
            "intelliSenseMode": "gcc-x64"
        }
    ],
    "version": 4
}

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

(7)快速查看已配置的文件

左侧Explorer→MAIN→.vscode
在这里插入图片描述

(8)测试一下

在这里插入图片描述

Try.cpp

#include<opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat srcImage<span class="token operator">=</span><span class="token function">imread</span><span class="token punctuation">(</span><span class="token string">"1.jpg"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">imshow</span><span class="token punctuation">(</span><span class="token string">"Origin"</span><span class="token punctuation">,</span>srcImage<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">waitKey</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">return</span> <span class="token number">0</span><span class="token punctuation">;</span>

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

1.jpg

在这里插入图片描述

效果

在这里插入图片描述

3.参考:

https://blog.csdn.net/weixin_43374723/article/details/84064644#commentBox
https://blog.csdn.net/zzz_xxj/article/details/86568353

4.神奇的错误

  1. 检查代码的头文件,符号(; 、(、))
  2. Ubuntu下VScode编译报错:File not recongnized不可识别的文件格式:https://blog.csdn.net/sandalphon4869/article/details/94410509
  3. Ubuntu下编译错误:Unable to open ’raise.c‘:
    https://blog.csdn.net/sandalphon4869/article/details/94414403

三、cmake编译

Linux 使用cmake构建OpenCV项目
Ubuntu18.04下安装配置VScode以及VS的使用总结

                                </div>
            <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-60ecaf1f42.css" rel="stylesheet">
                                            <div class="more-toolbox">
            <div class="left-toolbox">
                <ul class="toolbox-list">
                    
                    <li class="tool-item tool-active is-like "><a href="javascript:;"><svg class="icon" aria-hidden="true">
                        <use xlink:href="#csdnc-thumbsup"></use>
                    </svg><span class="name">点赞</span>
                    <span class="count">1</span>
                    </a></li>
                    <li class="tool-item tool-active is-collection "><a href="javascript:;" data-report-click="{&quot;mod&quot;:&quot;popu_824&quot;}"><svg class="icon" aria-hidden="true">
                        <use xlink:href="#icon-csdnc-Collection-G"></use>
                    </svg><span class="name">收藏</span></a></li>
                    <li class="tool-item tool-active is-share"><a href="javascript:;" data-report-click="{&quot;mod&quot;:&quot;1582594662_002&quot;}"><svg class="icon" aria-hidden="true">
                        <use xlink:href="#icon-csdnc-fenxiang"></use>
                    </svg>分享</a></li>
                    <!--打赏开始-->
                                            <!--打赏结束-->
                                            <li class="tool-item tool-more">
                        <a>
                        <svg t="1575545411852" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5717" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M179.176 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5718"></path><path d="M509.684 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5719"></path><path d="M846.175 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5720"></path></svg>
                        </a>
                        <ul class="more-box">
                            <li class="item"><a class="article-report">文章举报</a></li>
                        </ul>
                    </li>
                                        </ul>
            </div>
                        </div>
        <div class="person-messagebox">
            <div class="left-message"><a href="https://blog.csdn.net/sandalphon4869">
                <img src="https://profile.csdnimg.cn/9/F/8/3_sandalphon4869" class="avatar_pic" username="sandalphon4869">
                                        <img src="https://g.csdnimg.cn/static/user-reg-year/2x/2.png" class="user-years">
                                </a></div>
            <div class="middle-message">
                                    <div class="title"><span class="tit"><a href="https://blog.csdn.net/sandalphon4869" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;}" target="_blank">sandalphon4869</a></span>
                                        </div>
                <div class="text"><span>发布了456 篇原创文章</span> · <span>获赞 177</span> · <span>访问量 12万+</span></div>
            </div>
                            <div class="right-message">
                                        <a href="https://im.csdn.net/im/main.html?userName=sandalphon4869" target="_blank" class="btn btn-sm btn-red-hollow bt-button personal-letter">私信
                    </a>
                                                        <a class="btn btn-sm  bt-button personal-watch" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;}">关注</a>
                                </div>
                        </div>
                </div>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值