C++学习之工具篇 二:VSCode C++环境配置(Ubuntu篇)

2023-11-07

1.VSCode简介

VSCode是由微软推出的一款免费、开源且跨平台的代码编辑器,并具有以下亮点:
1)支持的编程语言较为丰富,如Java、Python、Go、Ruby、C#、C/C++等,只要安装相应的扩展就能很好的完成开发环境的搭建;
2)支持各大主流操作系统,包括Windows、Linux和Mac OS;
3)具有丰富的扩展插件,可灵活扩展想要的功能;
4)相对于IDE,足够的轻量化。

2.VSCode 下载安装

2.1 Snap Store安装方式

进入UbuntuStore 即 Ubuntu自带的应用商店,搜索VSCODE,选择第一个蓝色的code,进入页面后,点击Install即可。
在这里插入图片描述
在这里插入图片描述

2.2 官网下载方式

VSCode官网下载页选择对应版本进行下载。在终端中输入uname -a 查看系统架构,根据系统选择32位还是64位,大多数Ubuntu用户选择.deb 64bit 下载即可。
VSCode下载页面
进入Downloads文件夹,选择下载好的.deb包,右键选择使用SoftwareInstall打开,进入后点击Insatall 即可。
在这里插入图片描述

3.编译环境配置

3.1 安装gcc、 g++

终端中依次输入:

sudo apt update

sudo apt install gcc

sudo apt install g++

安装结束后,可通过查看版本检查是否安装成功。

gcc -v

g++ -v

后续项目实践中,会由于部分代码需要不同版本的gcc/g++编译器,所以可能涉及下载不同版本编译器,参考教程如下:
linux下gcc、g++不同版本的安装和切换 https://blog.csdn.net/FontThrone/article/details/104279224

3.2 Cmake 安装(可选)

可见下方链接:
Ubuntu 安装Cmake

4. VSCode 插件安装

打开VSCode,在扩展商店中搜索C++,选择第一个安装
在这里插入图片描述
其他插件可根据后续使用需求安装,推荐:
Cmake,CmakeTools,TodoTree,Docker,GitLens

5. 工程创建

5.1 创建工程文件

新建一个文件夹,进入目录后,在终端输入 code .即可使用VSCode 打开工程文件夹
也可以先打开VSCode 再选择打开工程文件夹
新建hello.cpp,写入程序

#include<iostream>
using namespace std;
 
int main()
{
    cout << "hello world!" <<endl;
    cout << " 你好 世界! " <<endl;
    return 0;
}

5.2 json文件配置

按下F5或点击左侧Run&Debug,点击create a launch.json File,弹窗中选择第一个即可运行程序,输出结果
同时,工程文件夹下多出一个.vscode文件夹,包含launch.json, tasks.json, c_cpp_properties.json
如何配置json文件,可参考下方链接
Visual Studio Code 如何编写运行 C、C++ 程序https://www.zhihu.com/question/30315894
在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++学习之工具篇 二:VSCode C++环境配置(Ubuntu篇) 的相关文章

  • 单元测试验证失败

    我正在运行我的单元测试PostMyModel路线 然而 在PostMyModel 我用的是线Validate
  • 在路由mvc 4中添加公司名称

    我一直在尝试为 Facebook 等用户提供在 URL 中添加公司名称的选项 http localhost 50753 MyCompany Login 我尝试过不同的网址 但没有成功 routes MapRoute name Default
  • CSharpRepl emacs 集成?

    我碰巧知道莫诺CSharpRepl http www mono project com CsharpRepl 是否有 emacs csharp 模式使用它在一个窗口中运行 REPL 并像 python 模式一样在另一个窗口中编译 运行 C
  • 从代码中,如何创建对存储在附加属性中的对象的属性的绑定?

    我们有一个继承的附加属性来存储一个对象 在可视化树的更下方 我们希望从代码绑定到该对象的属性 通常我们像这样构建绑定的路径部分 var someBinding new Binding Path new PropertyPath Attach
  • 将表(行)与 OpenXML SDK 2.5 保持在一起

    我想在 Word 文档中生成多个表 每行 2 行 但我想将这两行保留在一起 如果可能的话 new KeepNext 第一行不起作用 new KeepNext 第一行的最后一段不起作用 new CantSplit 放在桌子上不起作用 在所有情
  • 如何对 NServiceBus.Configure.WithWeb() 进行单元测试?

    我正在构建一个 WCF 服务 该服务接收外部 IP 上的请求并将其转换为通过 NServiceBus 发送的消息 我的单元测试之一调用Global Application Start 它执行应用程序的配置 然后尝试将 Web 服务解析为 验
  • C#6 中的长字符串插值行

    我发现 虽然字符串插值在应用于现有代码库的字符串 Format 调用时非常好 但考虑到通常首选的列限制 字符串对于单行来说很快就会变得太长 特别是当被插值的表达式很复杂时 使用格式字符串 您将获得一个可以拆分为多行的变量列表 var str
  • 从BackgroundWorker线程更新图像UI属性

    在我正在编写的 WPF 应用程序中 我有一个 TransformedBitmap 属性 该属性绑定到 UI 上的 Image 对象 每当我更改此属性时 图像就会更新 因此显示在屏幕上的图像也会更新 为了防止在检索下一张图像时 UI 冻结或变
  • bash "&" 不打印 "[1]+ Done "

    我在 bashrc 中调用一个脚本来打印打开终端时收到的新消息数 我希望该调用在访问网络时是非阻塞的 有时需要几秒钟 这意味着我无法使用终端直到完成 但是如果我输入 mailcheck 在我的 bashrc 中 它工作正常 但然后打印一个空
  • 如何获取 bash 中从 Ping 接收到的数据包的百分比?

    当 ping 主机时 我希望输出仅显示收到的数据包 已发送 5 个 的百分比 我想我需要使用grep不知怎的 但我不知道如何 我是 bash 编程的新手 这是我所在的地方 ping c 5 q host grep grep 中应该包含什么
  • CUDA 8 编译错误 -std=gnu++11

    我正在尝试转换一些代码以使用 CUDA 并且我认为我遇到了兼容性问题 我们使用CMake 这些是我使用的 gcc 和 CUDA 版本 gcc version gcc Ubuntu 5 4 0 6ubuntu1 16 04 5 5 4 0 2
  • 如何调试 .NET 运行时中的内部错误?

    我正在尝试调试一些处理大文件的工作 代码本身works 但 NET 运行时本身会报告零星错误 对于上下文 这里的处理是一个 1 5GB 文件 仅加载到内存中一次 在循环中处理和释放 故意尝试重现此否则不可预测的错误 我的测试片段基本上是 t
  • C++ 中 void(*)() 和 void(&)() 之间的区别[重复]

    这个问题在这里已经有答案了 在此示例代码中 func1是类型void int double and funky是类型void int double include
  • 如何清理 Runtime.exec() 中使用的用户输入?

    我需要通过命令行调用自定义脚本 这些脚本需要很少的参数并在 Linux 机器上调用 当前版本容易出现各种shell注入 如何清理用户给出的参数 参数包括登录名和路径 Unix 或 Windows 路径 用户应该能够输入任何可能的路径 该路径
  • 如何得知客户端从服务器的下载速度?

    根据客户的下载速度 我想以低质量或高质量显示视频 任何 Javascript 或 C 解决方案都是可以接受的 Thanks 没有任何办法可以确定 您只能测量向客户端发送数据的速度 如果没有来自客户端的任何类型的输入来表明其获取信息的速度 您
  • 来自 3rd 方库的链接器错误 LNK2019

    我正在将旧的 vc 6 0 应用程序移植到 vs2005 我收到以下链接器错误 我花了几天时间试图找到解决方案 错误LNK2019 无法解析的外部符号 imp 创建AwnService 52 在函数 public int thiscall
  • 如何将 SQL“LIKE”与 LINQ to Entities 结合使用?

    我有一个文本框 允许用户指定搜索字符串 包括通配符 例如 Joh Johnson mit ack on 在使用 LINQ to Entities 之前 我有一个存储过程 该存储过程将该字符串作为参数并执行以下操作 SELECT FROM T
  • 如何使用placement new重新初始化该字段?

    我的课程包含字段 private OrderUpdate curOrderUpdate 我一遍又一遍地使用它 经常需要重新初始化 for int i 0 i lt entries size i auto entry entries i ne
  • 结构化绑定的用例有哪些?

    C 17 标准引入了新的结构化绑定 http en cppreference com w cpp language structured binding功能 最初是proposed http www open std org jtc1 sc
  • 为什么匹配模板类上的部分类模板特化与没有模板匹配的另一个部分特化不明确?

    这个问题可能很难用标题中的句子来描述 但这里有一个最小的例子 include

随机推荐

  • TCP吞吐量的理论计算公式

    源 本篇文章本来是收录AIMD拥塞控制吞吐量的计算公式 Valve游戏公司开源GameNetworkingSockets 1 既支持可靠的数据传输 也支持不可靠的数据传输 数据的传输速率 是直接计算出来的 const int64 k nMi
  • HDLBits刷题_Verilog Language_Module pos

    学习内容 This problem is similar to the previous one module You are given a module named mod a that has 2 outputs and 4 inpu
  • 2019年TI电赛总结

    本人某不知名大学菜鸡一个 近几年比赛分析 首先 TI公司承办了未来好几年的电子设计竞赛 TI杯近几年出题还是很有技术的 省赛好多题目可以说是为国赛做准备的 所以想要参加国赛取得好成绩的同学 就要提前参加省赛或者做一做省赛的相关题目 之前不是
  • 使用.debug_info调试信息查看结构体、位域变量内存分配

    上一篇使用readelf查看了 debug info调试信息 现在我们对它进行分析 首先将调试信息保存到文档中 readelf wi test gt out txt 结构体分析 首先 我在结构体里定义了一个char型和一个double型 编
  • 容器的docker-compose怎样写agent.jar配置 -javaagent和其他环境配置怎么写

    在 Docker Compose 文件中配置 Java Agent 以及其他环境配置时 您需要将这些配置添加到 environment 字段中 以下是一个示例 演示了如何在 Docker Compose 文件中配置 Java Agent 和
  • 盘点各种边缘检测算子

    Sobel算子 原理 Sobel算子是一种基于梯度算子的边缘检测算子 它使用两个3x3的卷积核 分别对图像在水平和垂直方向进行卷积操作 然后将两个方向的梯度响应合并得到边缘强度 特点 Sobel算子简单易实现 计算效率高 对噪声有一定的抑制
  • MES系统的优势和上了MES系统后的成果

    1 辅助排产 2 状态监控 3 进度监控 4 效率统计 5 品质管理 在五大功能的保驾护航下 树字工厂机床管家云具有六大优势 1 花费低 2 上线快 3 使用易 4 功能全 完全具备MES的核心功能 智能辅助排产 进度监控 设备状态监控 生
  • MS5607使用中的问题,温度低于20℃,数值不对

    MS5607使用中的问题 温度低于20 马后炮 因为是网上找的代码 懒得看手册 导致后面低于20摄氏度还会有问题 只好认真的看了手册 发现我的代码是ms5611的 照着手册重新改写后就木有问题了 不能省的地方就别省了 公司使用MS5607设
  • Unity Animator入门:使用Animator和trigger参数做简单的UI动画

    Unity中使用Animator和trigger参数做简单的UI动画 概述 原理 Toast组件构成 添加Animator组件 创建default状态动画 录制hide和show动画 设置loopTime 调整各状态的关系 编写脚本 概述
  • Vcs+Verdi 联调

    lmg vcs lmdown y 等待两分钟 再次输入指令 lmg vcs 激活license 目录 主要参考示例 问题1 需要修改默认的shell 问题2 v 快速在flist添加路径失败 问题0 bash alias verdi 未找到
  • 一张图弄明白开源协议-GPL、BSD、MIT、Mozilla、Apache和LGPL 之间的区别

    导读 在开源软件中经常看到各种协议说明 GPL BSD MIT Mozilla Apache和LGPL 这些协议之间的有什么区别 如何选择合适的开源协议 请看下文 特作记录一篇 以供后续查看 参考 阮一峰的网络日志
  • 图灵完备机

    1936年提出的一种抽象计算模型 它可以模拟任何可计算函数 如果一个计算模型或编程语言具有与图灵机等效的计算能力 那么它就被称为图灵完备的 图灵完备性是计算机科学中的一个重要概念 因为它代表了一种最小化的计算能力标准 一个图灵完备的系统能够
  • 互关,互关,互赞,有关必回,有赞必会,有评论必回

    互关 互关 互赞 有关必回 有赞必会 有评论必回
  • 按位与、按位或、按位异或等等(&

    位运算概述 从现代计算机中所有的数据二进制的形式存储在设备中 即0 1两种状态 计算机对二进制数据进行的运算 都是叫位运算 即将符号位共同参与运算的运算 口说无凭 举一个简单的例子来看下CPU是如何进行计算的 比如这行代码 int a 35
  • 找工作知识储备(3)---从头说12种排序算法:原理、图解、动画视频演示、代码以及笔试面试题目中的应用

    作者 寒小阳 时间 2013年9月 出处 http blog csdn net han xiaoyang article details 12163251 声明 版权所有 转载请注明出处 谢谢 0 前言 从这一部分开始直接切入我们计算机互联
  • 【Go】sqlite3包配置和使用

    系统 Win10 IDE VsCode 1 初始化mod 在项目中先初始化mod 已经初始化过则忽略 打开终端 快捷键Ctrl Shift 执行go mod init xxx xxx为文件夹名 2 获取sqlite3 在golang官网的p
  • Idea maven项目不能新建package和class的解决

    如图 新建的maven项目不能新建package 这是因为java是普通的文件夹 要设置为 原文地址
  • Android 时区使用和总结

    最近负责的车机项目是海外项目 涉及到全球多个地区 应用开发人员在使用时区时遇到一些问题 故本人做了一点学习 本文基于android9 可以使用这些网址查询城市的时间时区等信息 https time bmcx com Chatham Isla
  • R语言调用函数之查看历史函数等相关帮助

    R语言基本操作函数 一 基本操作函数 代码可粘贴 二 代码与解释 一 基本操作函数 代码可粘贴 代码如下 search library help 包名称 library help 包名称 detach package 包名 install
  • C++学习之工具篇 二:VSCode C++环境配置(Ubuntu篇)

    C 学习之工具篇 二 VSCode C 环境配置 Ubuntu篇 1 VSCode简介 2 VSCode 下载安装 2 1 Snap Store安装方式 2 2 官网下载方式 3 编译环境配置 3 1 安装gcc g 3 2 Cmake 安