ubuntu18.04安装vscode用于开发c++环境下的opencv

2023-05-16

微软官方下没有为ubuntu给出Visual Studio2022之类的安装方法,但是Visual Studio Code却有,window下,Visual Studio 20xx下配置opencv的C++环境容易,主要是下载几个包,然后配置一下Visual Studio 20xx软件中的一些library的引用路径就行;而当我在win10配置Visual Studio Code的C++环境之前我用cmke-gui那个软件,折腾了好久,就是编译不成功,遂作罢;
而今天在ubuntu下,只能安装Visual Studio Code的环境,就不得不走用cmake-gui编译opencv的路了;
在这里插入图片描述

1.下载Visual Studio Code安装包

可以到微软的编译器官网下载ubuntu适合的.deb安装包,其他环境例如macos或者arm架构的下载链接;
在这里插入图片描述
在安装包的文件夹中打开终端,sudo dpkg -i code_1.71.2-1663191218_amd64.deb 然后等待安装成功; 这时候搜索自己的app就可以找到vscode了;
在这里插入图片描述

2.安装OpenCV

2.1 进入终端并输入以下命令。 (即使用cd命令移动到主目录并安装cmake和make)

cd
sudo apt install -y cmake
sudo apt install -y make

我之前已经安装了,所以显示如下:
在这里插入图片描述

2.2 从github下载OpenCV代码

进入你想安装opencv到的那个文件夹中,打开终端,输入
git clone https://github.com/opencv/opencv.git
(需要安全上网)
然后会自动下载最新的opencv程序(如果你要下载特定版本的opencv,那要找一下对应的链接)

smile@smile-X3-S:~/app_install$ git clone https://github.com/opencv/opencv.git
Cloning into 'opencv'...
remote: Enumerating objects: 309546, done.
remote: Counting objects: 100% (104/104), done.
remote: Compressing objects: 100% (89/89), done.
remote: Total 309546 (delta 29), reused 58 (delta 9), pack-reused 309442
Receiving objects: 100% (309546/309546), 497.41 MiB | 2.20 MiB/s, done.
Resolving deltas: 100% (215491/215491), done

成功 git clone 后,你应该在对应的文件夹中找到一个名为 opencv 的文件夹
在这里插入图片描述

2.3 进入 opencv 文件夹并创建一个名为 build 的文件夹、安装cmake gui

cd opencv && mkdir build
sudo apt-get install cmake-qt-gui

然后打开 cmake gui

cmake-gui

整个交互过程如下

smile@smile-X3-S:~/app_install$ cd opencv && mkdir build
smile@smile-X3-S:~/app_install/opencv$ sudo apt-get install cmake-qt-gui
[sudo] password for smile: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-headers-5.4.0-122-generic linux-hwe-5.4-headers-5.4.0-107
  linux-hwe-5.4-headers-5.4.0-113 linux-hwe-5.4-headers-5.4.0-121
  linux-hwe-5.4-headers-5.4.0-122 linux-hwe-5.4-headers-5.4.0-84
  linux-image-5.4.0-122-generic linux-modules-5.4.0-122-generic
  linux-modules-extra-5.4.0-122-generic python-rosdistro
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
  cmake-qt-gui
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,643 kB of archives.
After this operation, 5,512 kB of additional disk space will be used.
Get:1 https://mirrors.ustc.edu.cn/ubuntu bionic-updates/universe amd64 cmake-qt-gui amd64 3.10.2-1ubuntu2.18.04.2 [1,643 kB]
Fetched 1,643 kB in 1s (2,715 kB/s)    
Selecting previously unselected package cmake-qt-gui.
(Reading database ... 362934 files and directories currently installed.)
Preparing to unpack .../cmake-qt-gui_3.10.2-1ubuntu2.18.04.2_amd64.deb ...
Unpacking cmake-qt-gui (3.10.2-1ubuntu2.18.04.2) ...
Setting up cmake-qt-gui (3.10.2-1ubuntu2.18.04.2) ...
Processing triggers for desktop-file-utils (0.23-1ubuntu3.18.04.2) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for shared-mime-info (1.9-2) ...
Processing triggers for gnome-menus (3.13.3-11ubuntu1.1) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for mime-support (3.60ubuntu1) ...
smile@smile-X3-S:~/app_install/opencv$ cmake-gui
Gtk-Message: 20:39:59.329: GtkDialog mapped without a transient parent. This is discouraged.
Gtk-Message: 20:40:20.428: GtkDialog mapped without a transient parent. This is discouraged.

会弹出cmake gui窗口,接下来要利用这个程序帮我们编译刚刚下载的opencv程序

2.3.1 配置cmake gui

1.在Where is the source code:对话框中,粘贴你的opencv文件的路径
在Where to build the binaries: 对话框中,复制粘贴opencv目录下的构建目录的路径
2.单击configure,自己用系统自己默认的Unix makefile,然后点击finish,然后单击generate。
在这里插入图片描述
在这里插入图片描述
3. 回到终端并移步到 opencv 文件夹中的 build 文件夹,依次输入以下命令;预计make install将花费大量时间;

cd ~/opencv/build
make -j4
sudo make install
sudo apt-get install libopencv-dev
smile@smile-X3-S:~/app_install/opencv$ cd build/
smile@smile-X3-S:~/app_install/opencv/build$ make -j4
Scanning dependencies of target opencv_highgui_plugins
Scanning dependencies of target ade
Scanning dependencies of target libopenjp2
Scanning dependencies of target libwebp
[  0%] Built target opencv_highgui_plugins
[  0%] Building CXX object CMakeFiles/ade.dir/3rdparty/ade/ade-0.1.2a/sources/ade/source/alloc.cpp.o
Scanning dependencies of target ippiw
// 中间太长了,我跳过了,就是等了十几分钟,从0%到100%编译好了;
[100%] Building CXX object modules/gapi/CMakeFiles/opencv_test_gapi.dir/test/util/variant_tests.cpp.o
[100%] Linking CXX executable ../../bin/opencv_test_gapi
[100%] Built target opencv_test_gapi

smile@smile-X3-S:~/app_install/opencv/build$ sudo apt-get install libopencv-dev
[sudo] password for smile: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libopencv-dev is already the newest version (3.2.0+dfsg-4ubuntu0.1).
libopencv-dev set to manually installed.
The following packages were automatically installed and are no longer required:
  linux-headers-5.4.0-122-generic linux-hwe-5.4-headers-5.4.0-107 linux-hwe-5.4-headers-5.4.0-113 linux-hwe-5.4-headers-5.4.0-121 linux-hwe-5.4-headers-5.4.0-122 linux-hwe-5.4-headers-5.4.0-84
  linux-image-5.4.0-122-generic linux-modules-5.4.0-122-generic linux-modules-extra-5.4.0-122-generic python-rosdistro
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

smile@smile-X3-S:~/app_install/opencv/build$ sudo make install
[  1%] Built target ade
[  1%] Built target opencv_highgui_plugins
[  8%] Built target libwebp
// 中间太长了,我跳过了,就是等了十几分钟,从0%到100%编译好了;
-- Installing: /usr/local/bin/opencv_model_diagnostics
-- Set runtime path of "/usr/local/bin/opencv_model_diagnostics" to "/usr/local/lib"

4.完成上述步骤后,现在该检查安装是否成功了。这可以使用命令pkg-config --modversion opencv来完成
在这里插入图片描述

3.再ubuntu下使用 Visual Studio Code配置OpenCV

1.打开 Visual Studio Code -> 左上角File ->打开一个新窗口new window ->点击New File,即创建一个新文件夹(比如project) -> 创建一个新的 cpp 文件(比如new.cpp)

左上角File ->打开一个新窗口new window
在这里插入图片描述
点击New File,即创建一个新文件夹(比如project)在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后选则以下这个project放到电脑的哪个路径下
在这里插入图片描述
选好位置后点右上角create file,然后弹出下面的界面
在这里插入图片描述

2.随便找一张图片(比如1.jpg)复制粘贴到创建的新文件夹中
在这里插入图片描述
点击左上角File ->new text file在这里插入图片描述
然后把这个opencv打开一张图片的C++代码拷进去

#include <opencv2/highgui.hpp>
#include <iostream>
int main( int argc, char** argv )
{
    
    
    cv::Mat image;
    image = cv::imread("Lena.png",cv::IMREAD_COLOR);
    if(! image.data)
        {
    
    
            std::cout<<"Could not open file" << std::endl;
            return -1;
        }
    cv::namedWindow("namba image", cv::WINDOW_AUTOSIZE);
    cv::imshow("namba image", image);
    cv::waitKey(0);
    return 0;
}

然后按ctrl +s,把这个新建的代码文本保存为new.cpp
在这里插入图片描述
在这里插入图片描述
文件夹结构应该类似于下面的

project
|--new.cpp
|--1.png

如果看不到,那你点击open floder,然后重新open一下放代码的文件夹
在这里插入图片描述
在这里插入图片描述
3.打开 new.cpp 文件按ctrl+shift+p,这将打开命令托盘,在其中选择C/C++: Edit Configurations(JSON)打开c_cpp_properties.json,如下所示
在这里插入图片描述
4.在c_cpp_properties.json中编辑 IncludePath 以添加 /usr/local/include/opencv4/**

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "/usr/local/include/opencv2**"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c11",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "linux-gcc-x64"
        }
    ],
    "version": 4
}

如下图在这里插入图片描述
如果报错:致命错误: opencv2/core.hpp:没有这样的文件或目录”
主要原因是opencv4的文件夹放的有问题
在这里插入图片描述

解决方法:将/usr/include/opencv4复制到/usr/include/opencv2

sudo ln -s /usr/local/include/opencv4/opencv2/ /usr/local/include/opencv2

在这里插入图片描述

如果报错:error while loading shared libraries: libopencv_highgui.so.406: cannot open shared object file: No s
error while loading shared libraries:说明共享库出现问题。
检查下动态库(共享库)配置文件

sudo gedit /etc/ld.so.conf

在这里插入图片描述
然后更新下

sudo ldconfig

5.现在创建另一个文件并将其命名为Makefile,我们的文件夹结构应该类似于下面的代码片段
在这里插入图片描述
左上方点击文件+
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

project
|--new.cpp
|--1.png
|--Makefile

在 Makefile 中键入以下代码。最好键入下面的代码而不是复制粘贴,因为这可能会导致错误。
(注意:输入命令时,确保最后一行的开头有一个制表符而不是四个空格)

CC = g++
PROJECT = new_output
SRC = new.cpp
LIBS = `pkg-config --cflags --libs opencv4`
$(PROJECT) : $(SRC)
	$(CC) $(SRC) -o $(PROJECT) $(LIBS)

6.现在在 VS Code中的终端输入make。这应该会给你一个名为new_output的可执行文件
如果没有终端就创建一个:
在这里插入图片描述
在这里插入图片描述
这里注意一下,Makefile文件要和代码放在一个文档里,不然会报错

smile@smile-X3-S:~/Documents/code$ make
make: *** No targets specified and no makefile found.  Stop.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu18.04安装vscode用于开发c++环境下的opencv 的相关文章

  • linux时间同步脚本

    linux时间同步脚本 span class token function bash span span class token comment bin bash span span class token comment 时间同步服务器
  • 华三网络设备查看命令

    华三网络设备查看命令 华三网络设备的配置和管理可以通过设备的管理地址进行 常用的页面有 状态监控 用于查看设备运行状态 CPU利用率 内存利用率 温度等信息接口配置 用于配置接口属性 如速率模式 DUPLEX模式 description等I
  • rsync 远程删除文件

    rsync 远程删除文件 rsync是一个强大的远程数据同步工具 它不仅可以实现远程文件复制 也可以实现远程文件删除 要使用rsync实现远程删除文件 可以使用如下命令 span class token function bash span
  • 华为openEuler 22.03 LTS系统的欢迎讯息

    华为欧拉系统的欢迎讯息 华为EulerOS系统中的欢迎讯息是通过 etc profile文件来定义和设置的 该文件会在用户登录后读取并执行 EulerOS的 etc profile文件中定义了prompt函数来设置PS1提示符 并通过PRO
  • bash的进程与欢迎讯息自定义

    在bash shell中 可以通过多种方式自定义欢迎讯息和提示符 主要有 修改 etc profile文件 该文件在用户登录后执行 定义了PROMPT COMMAND和PS1提示符 可以修改其内容实现自定义欢迎讯息和提示符 例如 修改为 s
  • 使用crontab命令同步时间

    crontab命令可以用于在Linux系统中定期同步时间 常用的时间同步方法有 1 使用ntpdate同步时间 可以添加如下crontab任务 5 usr sbin ntpdate time nist gov http xn 5time r
  • GitHub+ Docker Hub 拉取国外镜像

    一 背景 我们在拉取国外镜像 xff0c 例如在搭建 Kubernetes 的时候需要使用到来自于 Google xff1a gcr io google containers kube apiserver amd64 这样的镜像 xff0c
  • 如何熟悉weblogic

    要熟悉WebLogic 可以从以下几个方面入手 理解WebLogic的基本架构 WebLogic是Oracle的中间件产品 用于开发和部署企业级Java EE应用程序 它的基本架构由管理服务器 托管服务器和节点管理器组成 理解每个组件的作用
  • docker overlay2 是存放什么的?

    docker overlay2是Docker中的存储驱动之一 用于管理镜像和容器层的数据 它使用最小存储空间来存储像层这样的临时数据 overlay2本质上是多层存储驱动 它将镜像和容器层都视为独立的匿名临时文件系统 然后通过联合挂载将这些
  • Google浏览器下载地址

    官网下载 https www google cn chrome 旧版本下载地址 https www chromedownloads net chrome64win https www slimjet com chrome google ch
  • docker网卡的IP地址修改

    Docker容器启动后 默认会在主机上分配一个网卡 该网卡对应一个网络命名空间 并在这个网络命名空间下随机分配一个IP地址 如果想修改Docker容器的IP地址 有以下几种方法 修改Docker宿主机的Docker网络 可以在Docker主
  • SNMP连接失败

    SNMP连接失败常见的原因有以下几个 版本不匹配 SNMP有SNMPv1 SNMPv2c SNMPv3等版本 客户端和服务器版本必须匹配 否则会连接失败 需要确认客户端和服务器所支持的SNMP版本 选择一个双方都兼容的版本进行连接 社区名不
  • windows安装GO语言环境

    GO语言版本 Windows 平台和 Mac 平台推荐下载可执行文件版 xff0c Linux 平台下载压缩文件版 版本 xff1a 1 16 8 出现上面这个界面就说明已经安装好了 查看GO版本 可以打开终端窗口 xff0c 输入go v
  • 3par命令集

    3PAR是惠普公司的存储产品 它提供了基于CLI的管理终端来管理存储系统 主要的3PAR CLI命令有 show 显示系统信息 showsys 显示系统概况信息shownode 显示节点信息showport 显示端口信息showdisks
  • 华为欧拉系统RPM强制卸载libffi-devel

    查看欧拉系统有没有安装这个包 yum list span class token operator span span class token function grep span libffi devel 准备离线下载时 xff0c 发现
  • 最全Arrays.sort函数举例

    Arrays sort 的作用是对括号中的数组进行排序 xff0c 时间复杂度O xff08 n logn xff09 xff0c 方法返回值为void 是在原来数组的空间基础上进行升序排序 xff0c 因此不需要定义一个数组接收它 xff
  • 【无标题】驱动设计思想P9- linux驱动(韦东山)

    linux驱动 xff08 韦东山 xff09 驱动设计思想P9 linux 驱动 61 驱动框架 43 硬件操作 61 驱动框架 43 单片机 面向对象 字符设备驱动程序抽象出file operation结构体对硬件部分抽象为led op
  • Ubuntu16.04 安装ROS 过程中遇到的问题

    操作系统 xff1a Ubuntu16 04 ROS版本 xff1a Kinetic 纯入门 xff0c 安装过程错误百出 xff0c 几乎是一步一个报错 xff0c 每执行一个命令就要各种查找解决方法 xff0c 终于用一个下午加晚上的时
  • Github学习心得(3):项目的修改

    书接上回Github创建版本库 xff0c 我们已经成功地创建了一个版本库 xff0c 并且上传了readme txt文件 在实际项目中 xff0c 我们总是要对代码进行修改 xff0c 那么就需要及时地更新Github版本库中的文件 以本
  • 解决Keil全局搜索时无法跳转的问题

    检查一下自己的工程文件路径中是否有英文括号 xff0c 如果有则删掉

随机推荐

  • 阿木实验室的普罗米修斯仿真平台搭建的难点和坑点

    普罗米修斯仿真实验平台搭建的难点解决 0 我为什么要辛苦搭环境 xff1f 前一段时间阿木实验室提供了一个搭好环境的镜像 xff0c 凭阿木币购买 xff0c 是真的好用 xff0c 阿木币嘛 xff0c 签一签道就会有 关于这个镜像其实还
  • Visual Studio Code无法监视此大工作空间中的文件更改的解决办法

    Visual Studio Code无法监视此大工作空间中的文件更改 xff08 错误ENOSPC xff09 当您看到此通知时 xff0c 表明VS Code文件监视程序用尽了句柄 xff0c 因为工作空间很大并且包含许多文件 在调整平台
  • Ubuntu增加交换分区即swap方法

    用交换文件的方式添加交换分区 xff0c 如下 sudo su 进入管理员模式 xff0c 会提示输入密码 cd usr mkdir swap cd swap dd if 61 dev zero of 61 swapfile bs 61 1
  • 为什么px4源码里找不到main函数?——从hello sky理解px4的编程规范

    如果你刚自学了c 43 43 xff0c 准备开始看px4的源码 xff0c 但翻来覆去找了半天没有找到一个标准的main 究其原因 xff0c 在nuttx系统里 xff0c 程序入口不是main xff0c 所以找不到任何main 如果
  • matlab提取外接盒、围盒、凸包和骨架

    宁收宁马的费呢 xff01 老子自己做的 xff0c 免费提供该大家 xff0c 卖资料的垃圾 xff0c 能收几个钱 拍一幅含多个人体目标的图像 xff0c 利用外接盒 围盒和凸包对每个人体目标区域进行表达 xff0c 并提取其骨架 ma
  • QLearning算法实现(python)

    文章目录 环境要求QLearning算法简介算法实现预设值Q表定义行为环境反馈环境更新Q学习主循环 环境要求 开发环境 xff1a python3 需要导入的包 xff1a numpy pandas time QLearning算法简介 Q
  • HTTP工作原理

    文章目录 简介 HTTP与HTTPS端口区别HTTP请求的方法OPTIONSHEADGETPOSTPUTDELETETRACECONNECT注意 xff1a HTTP 请求 响应的步骤 简介 HTTP协议定义Web客户端如何从Web服务器请
  • pandas行和列的操作

    文章目录 Series创建查增 改删 DataFrame创建查增删 columns amp index的指定 在Pandas中 xff0c Series是一维容器 xff0c DataFrame表示一个数据表 DataFrame中的任一行
  • 安装MAVROS过程 catkin:未找到命令 的问题

    PX4官网安装教程 源码方式安装 1 第一步执行 xff0c 创建文件夹 xff1b 移到创建文件夹中 mkdir p catkin ws src cd catkin ws 2 执行 catkin init 出错如下图 解决方法 xff1a
  • 数据规范化处理

    常用的三种数据规范化处理方法 常用的数据规范化处理主要有Min max规范化 Z Score规范化和小数定标规范化 下面简要介绍下三种数据规范化方法 xff0c 并用python的机器学习库SciKit Learn来实现数据变化 Min m
  • matplotlab不能显示中文解决(windows)

    汉字字体 xff0c 优先使用楷体 xff0c 找不到则使用黑体 plt rcParams 39 font sans serif 39 61 39 Kaitt 39 39 SimHei 39 正常显示负号 plt rcParams 39 a
  • ORB与CCM-SLAM

    入口函数 mono euroc cc int main int argc char argv 图像序列的文件名字符串序列 vector lt string gt vstrImageFilenames 时间戳 vector lt double
  • 在国际期刊发表人工智能和机器人文章的诀窍(WILEY)

    该次学术讨论主要讲述了如何去写论文 如何投稿 并介绍了WILEY论文投稿工具 xff0c 该工具 提供了论文撰写 xff08 包括 xff1a 图表 摘要图的生成 xff09 投稿期刊会议分析及建议等 链接 xff1a https gcb
  • ROS下进行串口通讯

    文章目录 前言一 安装串口功能包二 串口接受程序三 查看串口号 前言 在使用工控机时 xff0c 经常需要和其他主控进行信息交流 xff0c 串口通讯作为使用最为广泛的形式 xff0c 因此 xff0c 了解如何在ros下进行串口的接发数据
  • ubuntu系统分区详细教程

    1 xff1a swap交换空间 xff0c 这个也就是虚拟内存的地方 xff0c 选择主分区和空间起始位置 如果你给Ubuntu系统分区容量足够的话 xff0c 最好是能给到你物理内存的2倍大小 xff0c 像我8GB内存 xff0c 就
  • 前端面试题 - 如何将 Set 集合转化为一个数组

    什么是 Set 集合 xff1a Set 集合类似于一个数组 xff0c 但是它要求里面是元素不可以有重复 const set 61 new Set 39 welcome 39 39 you 39 39 39 39 you 39 conso
  • Ubuntu系统解压文件后乱码解决方法

    Ubuntu系统使用解压文件常见问题 在Ubuntu18 04下 xff0c 如果直接解压压缩文件 xff1a 右键选择提取到此处 发生乱码 乱码原因 xff1a Windows下生成的zip文件中的编码是GBK GB2312等 xff0c
  • Ubuntu下切换默认的python版本

    Ubuntu系统自带python2 7 xff08 默认 xff09 和python3 5 xff0c 所以不需要自己安装python 可以使用命令 python version 来查看默认的python版本 smile 64 smile
  • (完整体系教程)使用 Arduino 控制伺服电机

    1 什么是伺服电机 xff1f 伺服电机是一个闭环系统 xff0c 它使用位置反馈来控制其运动和最终位置 伺服电机有多种类型 xff0c 其主要特点是能够精确控制其轴的位置 在工业型伺服电机中 xff0c 位置反馈传感器通常是高精度编码器
  • ubuntu18.04安装vscode用于开发c++环境下的opencv

    微软官方下没有为ubuntu给出Visual Studio2022之类的安装方法 xff0c 但是Visual Studio Code却有 xff0c window下 xff0c Visual Studio 20xx下配置opencv的C