Ubuntu下配置VScode及LeetCode,开始撸代码

2023-11-04

一、配置VScode环境

PS:笔者用的是Ubuntu 20.04的版本,其他版本可以仅供参考,概不负责

1. 软件下载

这就没什么好说的了,直接百度VScode,或者 >> 点此跳转
版本随意,这里笔者下的.deb的包。
在这里插入图片描述

2. 软件安装及启动

打开终端,进入下载的安装包的文件夹内,或者图形界面直接进入安装包所在文件夹,右键打开终端执行即可。

// 执行下面的指令,安装VScode
sudo dpkg -i xxxxxx

坐等软件安装完成,打开菜单栏界面,选中All所有软件,找到VScode即可,为了方便平常打开软件,可以右键点击VScode图标,选择“Add to Favorite”,就可以将VScode添加到快速启动栏。

打开软件的界面,我这里就随意截取了一张,简单介绍下:

  1. 文件和工程的操作入口,在左上角的File选项也可以找到这些按键
  2. 软件特征指引
  3. 工作目录树空间
  4. 快捷启动栏,有些插件这里会显示
  5. 工具栏,功能很多,慢慢研究,点击Terminal在6处可以看到和外部终端打开的一致,方便调试。
    在这里插入图片描述

3. C++基础插件的安装

鼠标点击左侧快捷栏这四个小方块一样的图标,进入插件管理界面:
在这里插入图片描述
可能需要及推荐安装的主要的几个插件:

  1. C/C++
  2. C++ Intellisense
  3. Bracket Pair Colorizer 2(彩色高亮代码中的括号)
  4. CMake和CMake Tools,根据自己需要吧,如果喜欢用CMake的同学下载
  5. git等

4. 配置软件内部Debug

在左侧的快捷启动栏,找到一个小甲虫+三角形组成的图标,点击右侧的“Run and Debug”,
在这里插入图片描述
在中间弹出的选择框中,选择C++(GDB/LLDB),
在这里插入图片描述

系统自动创建一个lanuch.json文件,复制下面的内容,覆盖系统自动创建的lanuch.json,或者自己根据需要适当修改

// launch.json 可以直接复制这段内容,或者自己修改也没啥问题
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "g++ - Build and debug active file",
      "type": "cppdbg",
      "request": "launch",
      "program": "${fileDirname}/${fileBasenameNoExtension}",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${fileDirname}",
      "environment": [],
      "externalConsole": false,
      "MIMode": "gdb",
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ],
      "preLaunchTask": "C/C++: g++ build active file",
      "miDebuggerPath": "/usr/bin/gdb",
    }
  ]
}

5. 配置内部Debug工具时的异常,正常请跳过此步

可能会遇到的问题~~

  1. 问题:Unable to open ‘exit.c’: Unable to read file ‘/build/glibc-eX1tMB/glibc-2.31/stdlib/exit.c’ (Error: Unable to resolve non-existing file ‘/build/glibc-eX1tMB/glibc-2.31/stdlib/exit.c’).
    在这里插入图片描述
    按照广大网友的说法,在lanuch.json中的“args”:[]中空指针造成的问题,说错了大家可以多多评论,倾听各位dalao指点。
    好了,我们还是说说怎么解决吧,按照下面 三条语句,在终端中执行。
    注意:第三条语句中的2.31是我的错误中报告的版本号,根据每个人报错的不同,自己修改一下
// 执行下面的指令
sudo apt install glibc-source
cd /usr/src/glibc/
sudo tar -xvf glibc-2.31.tar.xz
	回到luanch.json文件中,在后面添加的语句,其中eX1tMB为我出现的错误信息,大家自己根据自己的错误自己修改一下。
      "sourceFileMap": {
        "/build/glibc-eX1tMB": "/usr/src/glibc"
      }
	修改后的launch.json文件如下
//报错修改后的luanch.json
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "g++ - Build and debug active file",
      "type": "cppdbg",
      "request": "launch",
      "program": "${fileDirname}/${fileBasenameNoExtension}",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${fileDirname}",
      "environment": [],
      "externalConsole": false,
      "MIMode": "gdb",
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ],
      "preLaunchTask": "C/C++: g++ build active file",
      "miDebuggerPath": "/usr/bin/gdb",
      "sourceFileMap": {
        "/build/glibc-eX1tMB": "/usr/src/glibc"
      }
    }
  ]
}
  1. task.json文件未自动创建
    按照下面的步骤,自己随便创建一个,再把我上面的内容复制过去。注意,这里我用的是g++调试,需要使用其他调试工具的可以自己尝试一下。
    在这里插入图片描述
    点击“Configure Task”
    在这里插入图片描述
    这里可以随便选一个,适当修改一些参数
    在这里插入图片描述
    效果如下所示,基本不需要修改什么东西。在这里插入图片描述

6. 软件内Debug调试

随便写一段语句,测试Debug功能。

#include <iostream>
using namespace std;
int main(void){
  for(int i = 0; i < 10; i++) {
    cout << "hello" << endl;
  }
  return 0;
}
  1. 按键盘的F5或者点击左侧的绿色的三角形按钮,进入调试过程;
  2. 右侧的下箭头单步执行
  3. 下面的终端界面显示执行结果在这里插入图片描述
    写的比较简单随意,大家简单参考就好~

7. 配置LeetCode

1、 安装插件,
在这里插入图片描述
2、 账户登入,左侧快速启动栏找到LeetCode的图标,点击2中的地球标志,点击3中的切换至中国区账户。
在这里插入图片描述
3、 点击地球图标右侧的小门,点击右侧的登入账户,然后在右侧箭头上面的对话框中按提示依次输入账户密码,完事。在这里插入图片描述4、问题补充,node.js和npm的安装Ubuntu apt-get命令安装,直接执行即可

sudo apt-get install nodejs
sudo apt-get install npm

其他还有很多安装的方法,请参考[链接]

5、 完成之后如下图所示:在这里插入图片描述

应该基本上没啥问题了~~

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

Ubuntu下配置VScode及LeetCode,开始撸代码 的相关文章

  • 段错误...关于你好世界

    这段代码非常简单 但我在 x86 64 Linux 系统上遇到了段错误 这让我很烦恼 刚开始接触asm 请耐心等待 与 NASM 组装nasm f elf64 test asm 与连接ld o test test o SECTION tex
  • 如何通过ssh获取远程命令的退出代码

    我正在通过 ssh 从远程计算机运行脚本 ssh some cmd my script 现在 我想在本地计算机上存储 shell 脚本的退出状态 我该怎么做 假设没有任何问题ssh其本身 其退出状态是在远程主机上执行的最后一个命令的退出状态
  • 选择fasta文件中氨基酸超过300个且“C”出现至少4次的序列

    我有一个包含蛋白质序列的 fasta 文件 我想选择超过 300 个氨基酸且半胱氨酸 C 氨基酸出现超过 4 次的序列 我使用此命令来选择具有超过 300 个 aa 的序列 cat 72hDOWN fasta fasta bioawk c
  • 在本地主机上使用相同的 IP 和端口创建套接字

    我在 Linux 上看到奇怪的行为 我看到远程端和本地端都显示相同的 IP 和端口组合 以下是 netstat 输出 netstat anp 网络统计grep 6102 tcp 0 0 139 185 44 123 61020 0 0 0
  • Vagrant 遇到问题 - “404 - 未找到”

    我正在尝试使用 Vagrant 制作一个 LAMP 盒子 有人告诉我它使用起来非常简单 我对网络和虚拟机完全陌生 对 Linux Ubuntu 的经验也很少 我目前已尝试按照官方文档页面上的教程进行操作 http docs vagrantu
  • 在 Linux 中重新启动时,新创建的文件变为 0 kb(数据被覆盖为空)

    我遇到了一个奇怪的问题 这让我发疯 当前的任务是在 root 用户第一次登录时启动一组文件 并在同一用户第二次登录时启动另一组文件 我决定使用 profile 和 bashrc 文件 并在第一次登录期间发生的任务结束时重新加载 bashrc
  • bash 将输出重定向到文件,但结果不完整

    重定向命令输出的问题已经被问过很多次了 但是我有一个奇怪的行为 我使用的是 bash shell debian 版本 4 3 30 1 release 并尝试将输出重定向到文件 但并非所有内容都记录在文件中 我尝试运行的 bin 文件是 l
  • 更新Linux中的包含路径

    我的 my path to file 文件夹中有几个头文件 我知道如何将这些文件包含在新的 C 程序中 但每次我都需要在包含它之前输入头文件的完整路径 我可以在linux中设置一些路径变量 以便它自动查找头文件吗 您可以创建一个 makef
  • 为什么 OS X 和 Linux 之间的 UTF-8 文本排序顺序不同?

    我有一个包含 UTF 8 编码文本行的文本文件 mac os x cat unsorted txt foo foo 津 如果它有助于重现问题 这里是文件中确切字节的校验和和转储 以及如何自己生成文件 在 Linux 上 使用base64 d
  • Linux shell 从用户输入中获取设备 ID

    我正在为一个程序编写安装脚本 该程序需要在其配置中使用 lsusb 的设备 ID 因此我正在考虑执行以下操作 usblist lsusb put the list into a array for each line use the arr
  • BASH:输入期间按 Ctrl+C 会中断当前终端

    我的 Bash 版本是 GNU bash version 4 3 11 1 release x86 64 pc linux gnu 我有一段这样的代码 while true do echo n Set password read s pas
  • /sys/device/ 和 dmidecode 报告的不同 CPU 缓存大小

    我正在尝试获取系统中不同缓存级别的大小 我尝试了两种技术 a 使用 sys device 中的信息 这是输出 cat sys devices system cpu cpu0 cache index1 size 32K cat sys dev
  • 如何从 C++ 程序中重新启动 Linux?

    我有一个 Qt 4 GUI 我需要在下拉菜单中提供一个选项 允许用户选择重新启动计算机 我意识到这对于以其他方式重新启动计算机的能力来说似乎是多余的 但选择需要保留在那里 我尝试使用 system 来调用以下内容 suid root she
  • Ubuntu Python shebang 线不工作

    无法让 shebang 线在 Ubuntu 中为 python 脚本工作 我每次只收到命令未找到错误 test py usr bin env python print Ran which python usr bin python 在 sh
  • Python 3.4.3 subprocess.Popen 在没有管道的情况下获取命令的输出?

    我试图将命令的输出分配给变量 而不让命令认为它正在通过管道传输 原因是 如果正在通过管道传输 则相关命令会给出未格式化的文本作为输出 但如果从终端运行 则会给出颜色格式化的文本 我需要获取这种颜色格式的文本 到目前为止我已经尝试了一些事情
  • 在汇编中使用 printf 会导致管道传输时输出为空,但可以在终端上使用

    无输出 https stackoverflow com questions 54507957 printf call from assembly do not print to stdout即使在终端上 当输出不包含换行符时也有相同的原因
  • 如何才能将 TCP 连接返回到同一端口?

    机器是 RHEL 5 3 内核 2 6 18 有时我在 netstat 中注意到我的应用程序有连接 建立了 TCP 连接本地地址 and 国外地址是一样的 其他人也报告了同样的问题 症状与链接中描述的相同 客户端连接到本地运行的服务器的端口
  • vmsplice() 和 TCP

    在原来的vmsplice 执行 有人建议 http lwn net Articles 181169 如果您的用户态缓冲区是管道中可容纳的最大页面数的 2 倍 则缓冲区后半部分成功的 vmsplice 将保证内核使用缓冲区的前半部分完成 但事
  • 为什么 Linux 原始套接字的 RX 环大小限制为 4GB?

    背景 我试图mmap 我的原始套接字的 RX 环形缓冲区64 bitLinux 应用程序 我的环由 4096 个块组成 每个块大小为 1MB 总共 4GB 请注意 每个 1MB 块中可以有许多帧 如果您好奇 请参阅此文档了解背景信息 htt
  • 适用于 Linux 的轻量级 IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi

随机推荐

  • matlab做多元门限回归模型,门限自回归模型

    2014年第6期 郑晓亚 我国股权风险溢价的长期趋势与短期特征 我国股权风险溢价的长期趋势与短期特征 结合门限自回归模型与B P多重结构型断点检验的经验研究郑 Hansen 于 1996 年在 Econometrica 上发表文章 Infe
  • Vercel国内无法访问解决方案

    域名解析使用 cname vercel dns com 或 将 A 记录从 76 76 21 21 改成 76 223 126 88 官方建议将 cname 从 cname vercel dns com 修改为 cname china ve
  • python web页面增删改查_python web 增删改查教你快速入门

    1 导入需要的扩展和包from sqlalchemy import create engine Column Integer String from sqlalchemy ext declarative import declarative
  • 数据源 JNDI 作用

    数据源在JDBC中的应用简介众所周知 JDBC Java数据库连接 是Java 2企业版的重要组成部分 它是基于SQL层的API 通过把SQL语句嵌入JDBC接口的方法中 用户可以通过Java程序执行几乎所有的数据库操作 JDBC只提供了接
  • uni-app的Vue.js实现微信小程序的紧急事件登记页面功能

    主要功能实现 完成发生时间选择功能 用户可以通过日期选择器选择事件发生的时间 实现事件类型选择功能 用户可以通过下拉选择框选择事件的类型 添加子养殖场编号输入框 用户可以输入与事件相关的子养殖场编号 完成事件描述输入功能 用户可以通过文本输
  • 1、网易校招2016年《下厨房》

    题目描述 牛牛想尝试一些新的料理 每个料理需要一些不同的材料 问完成所有的料理需要准备多少种不同的材料 输入描述 每个输入包含 1 个测试用例 每个测试用例的第 i 行 表示完成第 i 件料理需要哪些材料 各个材料用空格隔开 输入只包含大写
  • 数据分析实战项目:SQL分析淘宝用户行为

    文章目录 一 项目背景及目的 1 1 项目背景 1 2 项目目的 1 3 数据集来源与介绍 二 数据导入 2 1 图形界面工具导入 2 2 以系统命令行导入 三 数据清洗 3 1 删除重复值 3 2 查看缺失值 3 3 时间格式转换 3 4
  • 赛宁网安有力保障淮安市网络安全技能竞赛决赛

    9月6日 由中共淮安市委网信办 淮安市总工会 淮安市人社局 淮安市教育局 淮安市公安局 共青团淮安市委共同主办 淮阴工学院协办 淮安市网络信息和数据安全协会 淮安市信息安全等级保护工作协调小组办公室承办 中国电信股份有限公司淮安分公司 中国
  • stm32 无刷电机控制板

    stm32f103c8t6 做主控 自制无刷电机 bldc 控制板 支持有感和无感两种模式 可通过硬件切换 内部包含原理图和源代码及照片 文件 url80 ctfile com f 25127180 745426979 e8e3fc p 5
  • Acesrc and Hunting【模拟 贪心】

    HDU 6660 题目链接 这道题主要就是讲我们从任意点出发 每次走的都是没走过并且 曼哈顿距离大于1小于3的点 然后问能不能覆盖完整幅图 这里就想到一个很经典的问题 4399小游戏除草游戏 以前玩过的一个小游戏倒是让我对这道题的解法有了方
  • 动手学数据分析 Task4

    动手学数据分析 Task4 一 可视化展示泰坦尼克号数据集中男女中生存人与死亡人数的比例图 二 可视化展示泰坦尼克号数据集中不同票价的人生存和死亡人数分布情况 三 可视化展示泰坦尼克号数据集中不同年龄的人生存与死亡人数分布情况 一 可视化展
  • Maven的基础知识

    Maven介绍 Maven 是一个项目管理和 综合工具 Maven 提供了开发人员构建一个完整的生命周期框架 开发团队可以自动完成项目的基础工具建设 Maven 使用标准的目录结构 和 默认构建生命周期 Maven是什么 它是一个 Apac
  • 各种绕过(MD5

    文章目录 MD5 0e开头的数组 MD5弱比较 MD5数组绕过 MD5 SQL注入 SHA1 SHA1弱比较 和 MD5弱类型比较同理 SHA1碰撞 MD5 0e开头的数组 MD5弱比较 QNKCDZO 240610708 byGcY so
  • 表设计为什么主键尽量无意义_奉上数据库表设计的十三条建议

    前言 本文总结了数据库表设计的十三条建议 这十三条建议只作为大家的参考 具体需要根据自己的项目来设计 来自 梦尘啊 链接 https juejin cn post 6902236691348586510 1 原始单据与实体之间的关系 表的设
  • Go:go mod vendor 使用

    Go go mod vendor 使用 1 背景 我们基于 go mod 机制来管理我们项目的依赖库版本 其中 go mod 记录了依赖库版本信息 一般第三方依赖库 包括公司内网gitlab上的依赖库 其源码都不被包含在我们的项目内部 而是
  • 5.自动装配:autowire=“byName“ or “byType“ + 使用注解【@Autowired 、@Qualifier、 @Resource】

    文章目录 自动装配说明 本博客环境搭建 自动装配 autowire byName 按名称自动装配 autowire byType 按类型自动装配 使用注解 1 Autowired 按类型自动转配的 不支持id匹配 2 Qualifier 不
  • hypertable管理当前rangserver和历史rangserver

    purge old log files void OperationRecoveryBlocker execute HT INFOF Entering RecoveryBlocker lld threadid d Lld header id
  • Docker安装

    镜像 Docker 镜像 Image 就是一个只读的模板 镜像可以用来创建 Docker 容器 一个镜像可以创建很多容器 它也相当于是一个root文件系统 比如官方镜像 centos 7 就包含了完整的一套 centos 7 最小系统的 r
  • ns2编程小技巧(转)

    1 tcl脚本传入一个int变量给c 代码在command解析里 int nodenum atoi argv 2 printf d nodenum 2 在nam中输出结果 Tcl instance evalf ns trace annota
  • Ubuntu下配置VScode及LeetCode,开始撸代码

    Ubuntu20 04下配置VScode及LeetCode 开始撸代码 一 配置VScode环境 1 软件下载 2 软件安装及启动 3 C 基础插件的安装 4 配置软件内部Debug 5 配置内部Debug工具时的异常 正常请跳过此步 6