ubuntu系统下如何使用vscode编译和调试#小白入门#

编程环境:ubuntu系统为18.04.1,vscode版本为1.66.2

一、VSCode切换中文显示:

1、vscode安装完成后启动,在左侧externsions中搜索“简体中文”插件,并完成安装:
请添加图片描述
2、选择右下角齿轮形状的"Manage",选择第一项“command palette…“,
请添加图片描述
3、在右侧最上面输入栏选择"configure display language”,
请添加图片描述
4、选择下拉中的第二项“zh-cn”:
请添加图片描述
5、选择重新启动VSCode,切换到中文显示。
请添加图片描述

二、设置工作区

1、在本地任意目录创建一个test文件夹(我这里的目录为/home/l/projects/mytest),在vscode中选择“打开文件夹”,选择刚才新建的“mytest"文件夹:
请添加图片描述
2、在mytest目录下新建一个“hello.cpp"的文件,并编写一个main函数,向终端输出"hello world!":请添加图片描述

三、编译和调试的脚本配置

由于vscode只是一个代码编辑和查看工具,本身并不具备代码编译和调试功能,因此需要通过tasks.json 和launch.json脚本配置指令,调用本地已安装的编译器(如gcc或者g++等)实现编译和调试功能。

1、创建tasks.json。注意:在操作前,需要先选中"hello.cpp"文件(否则无法找到相应编译器),在最上面的菜单栏里选择“终端”,选择最后一项"配置默认生成任务",这里会列出已安装可用的编译器,这里我选择“C/C++:g++生成活动文件",创建tasks.json:
请添加图片描述
tasks.json里的参数配置一般情况下是不需要修改的:
在这里插入图片描述
2、创建launch.json。在左侧活动栏的“运行和调试”中,选择“创建launch.json文件”,会在当前工作区里自动生成一个launch.json文件;在"launch.json"文件中,选择右下角的“添加配置”,选择第一项“C/C++:(gdb)启动”,会自动按模板生成脚本:请添加图片描述3、修改launch.json。下图中,对比tasks.json和launch.json两个文件代码:
tasks.json代码里的参数一般情况下是不需要更改的,都是宏定义符,只需要更改launch.json。将launch.json代码模板的第11行注释掉,修改为图中第12行的格式,这样不管执行程序的名字是什么,能自动识别当前工作区编译生成的可执行程序;
同时在第19行增加一行代码,目的是在调用launch.json之前,先运行tasks.json中的配置命令"C/C++: g++ 生成活动文件",(也就是先进行编译工作), 图中标记的2 和3 地方的名称一定要保持一致
请添加图片描述关于tasks.json和launch.json文件参数的详细介绍可参考这两个文章:
VS Code上C++的环境配置&tasks.json和launch.json解析
vscode launch.json和task.json配置(重要参数详解)
4、选中"hello.cpp",然后选择“运行和调试”,点击上面的绿色三角(名字为(gdb)启动)(这个名字可以在launch.json中"name"参数那里修改),就会自动完成编译,生成执行程序hello,如何在代码里提前打了断点,就会停在断点处,这样就可以单步调试了:
在这里插入图片描述

说明:tasks.json和launch.json这些文件其实是在当前工作区的一个.vscode文件夹里,默认从文件系统里是看不到这个文件夹的,只能从vscode的资源管理器查看:
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/281867.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

运动想象 (MI) 迁移学习系列 (14) : EEGNet-Fine tuning

运动想象迁移学习系列:EEGNet-Fine tuning 0. 引言1. 主要贡献2. 提出的方法2.1 EEGNet框架2.2 微调 3. 实验结果3.1 各模型整体分类结果3.2 算法复杂度比较3.3 不同微调方法比较 4. 总结欢迎来稿 论文地址:https://www.nature.com/articles/s41598-021-99114-1#cit…

【HTTP完全注解】范围请求

范围请求 范围请求是HTTP的一种内容协商机制,该机制允许客户端只请求资源的部分内容。范围请求在传送大的媒体文件,或者与文件下载的断点续传功能搭配使用时非常有用。 范围请求的工作流程 范围请求通过在HTTP请求标头Range中表明需要请求的部分资源的…

可视化日记——极坐标绘制雷达图

目录 一、创建极坐标 二、数据集准备 三、划分角度 四、指定半径 五、绘制 一、创建极坐标 Python中没有直接画雷达图的函数,若要绘制需要先创建画布和极坐标轴域,再设定角度与半径的参数(极坐标中角度与半径确定一个点的位置&#xff…

专业135+总分400+重庆邮电大学801信号与系统考研经验重邮电子信息与通信工程,真题,大纲,参考书。

今年分数出来还是比较满意,专业801信号与系统135,总分400,没想到自己也可以考出400以上的分数,一年的努力付出都是值得的,总结一下自己的复习心得,希望对大家复习有所帮助。专业课:(…

(ROOT)KAFKA详解

生产篇 使用 /** Licensed to the Apache Software Foundation (ASF) under one or more* contributor license agreements. See the NOTICE file distributed with* this work for additional information regarding copyright ownership.* The ASF licenses this file to Y…

设计模式学习笔记 - 设计原则与思想总结:2.运用学过的设计原则和思想完善之前性能计数器项目

概述 在 《设计原则 - 10.实战:针对非业务的通用框架开发,如何做需求分析和设计及如何实现一个支持各种统计规则的性能计数器》中,我们讲解了如何对一个性能计数器框架进行分析、设计与实现,并且实践了一些设计原则和设计思想。当…

macOS 通过 MacPorts 正确安装 MySQL 同时解决无法连接问题

如果你通过 sudo port install 命令正常安装了 MySQL,再通过 sudo port load 命令启动了 MySQL Server,此刻却发现使用 Navicat 之类的 GUI 软件无法连接,始终返回无法连接到 127.0.0.1 服务器。这是一个小坑,因为他默认使用了 So…

Git——GitHub远端协作详解

目录 Git&GitHub1、将内容Push到GitHub上1.1、在GitHub上创建新项目1.2、upstream1.3、如果不想要相同的分支名称 2、Pull下载更新2.1、Fetch指令2.2、Fetch原理2.3、Pull指令2.4、PullRebase 3、为什么有时候推不上去3.1、问题复现3.2、解决方案一:先拉再推3.3…

vue+element 前端实现增删查改+分页,不调用后端

前端实现增删查改分页&#xff0c;不调用后端。 大概就是对数组内的数据进行增删查改分页 没调什么样式&#xff0c;不想写后端&#xff0c;当做练习 <template><div><!-- 查询 --><el-form :inline"true" :model"formQuery">&l…

Git 仓库瘦身与 LFS 大文件存储

熟悉 Git 的小伙伴应该都知道随着 Git 仓库维护的时间越来越久&#xff0c;追踪的文件越来越多&#xff0c;git 存储的 objects 数量会极其庞大&#xff0c;每次从远程仓库 git clone 的时候都会墨迹很久。如果我们不小心 git add 了一个体积很大的文件&#xff0c;且 git push…

云原生部署手册02:将本地应用部署至k8s集群

&#xff08;一&#xff09;部署集群镜像仓库 1. 集群配置 首先看一下集群配置&#xff1a; (base) ➜ ~ multipass ls Name State IPv4 Image master Running 192.168.64.5 Ubuntu 22.04 LTS1…

大模型赋能机器狗,西工大离线具身智能研究取得新突破!

“啪嗒啪嗒…”&#xff0c;一只机器狗在街上迈着规律的步伐&#xff0c;拉着牵引绳的盲人&#xff0c;在它的带领下越过沿路障碍&#xff0c;平稳地行走着。电子导盲犬能否取代传统导盲犬&#xff0c;解决视障人士一犬难求的困境&#xff1f;西工大团队在此方面开展研究攻关&a…

安卓使用MQTT实现阿里云物联网云台订阅和发布主题(3)

一、订阅主题代码讲解 private final String mqtt_sub_topic "/sys/k0wih08FdYq/LHAPP/thing/service/property/set";//订阅话题//mqtt客户端订阅主题//QoS0时&#xff0c;报文最多发送一次&#xff0c;有可能丢失//QoS1时&#xff0c;报文至少发送一次&#xff0c…

linux网络固定ip的方式

1. 注意 默认情况下&#xff0c;我们linux操作系统 ip 获取的方式是自动获取的方式&#xff08;DHCP&#xff09;&#xff0c;自动获取在我们需要进行集群配置的时候&#xff0c;IP会经常变化&#xff0c;需要将IP固定下来。 2. 第一步 编辑我们 linux 的网卡文件 这个网卡文件…

MIT的研究人员最近开发了一种名为“FeatUp”的新算法,这一突破性技术为计算机视觉领域带来了高分辨率的洞察力

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

【目标检测】2. RCNN

接上篇 【目标检测】1. 目标检测概述_目标检测包括预测目标的位置吗?-CSDN博客 一、前言 CVPR201 4经典paper:《 Rich feature hierarchies for accurate object detection and semantic segmentation》&#xff0c;https://arxiv.org/abs/1311.2524, 这篇论文的算法思想被称…

静态路由实验(HCIP部分)

1、拓扑信息 2、需求分析 3、IP规划 4、配置截图 5、测试 1、拓扑信息 2、需求分析 1、 R6为isp,接口IP地址均为公有地址&#xff1b;该设备只能配置IP地址&#xff0c;之后不能再对其进行其他任何配置; 分析&#xff1a; R6只需配置一个环回和链路物理接口IP即可 2 、R1-R5为…

pytorch多层感知机

目录 1. 多层感知机2. 多层感知机loss梯度推导3. pytorch示例 1. 多层感知机 有多个输入节点、多个中间节点和多个输出节点 2. 多层感知机loss梯度推导 3. pytorch示例

Go语言gin框架中加载html/css/js等静态资源

Gin框架没有内置静态文件服务&#xff0c;但可以使用gin.Static或gin.StaticFS中间件来提供静态文件服务。 效果图如下&#xff1a; 一、gin 框架加载 Html 模板文件的方法 方式1&#xff1a;加载单个或多个html文件&#xff0c;需要指明具体文件名 r.LoadHTMLFiles("vie…

python基础——字典【特点,定义,引用操作,pop,clear,keys,items】

&#x1f4dd;前言&#xff1a; 今天我们来学习一下python中的常见数据容器之一——字典&#xff1a; 1&#xff0c;字典的特点及定义 2&#xff0c;字典的引用操作 3&#xff0c;字典的常见操作方法 &#x1f3ac;个人简介&#xff1a;努力学习ing &#x1f4cb;个人专栏&…