关于使用vscode搭建c/c++编程环境

news/2024/5/10 13:42:43

目录

    • 关于使用vscode搭建c/c++编程环境
      • 一、前言
      • 二、安装 IDE
    • 二、安装TDM-GCC安装
    • 三、安装C/C++环境
    • 四、编写代码并进行编译

关于使用vscode搭建c/c++编程环境

一、前言

一直觉得vscode是生产强有力的生产工具,基于此,做一篇学习笔记进行记录。

二、安装 IDE

访问[vscode官网](Visual Studio Code - Code Editing. Redefined)

在这里插入图片描述

根据操作系统选择相应版本的 VS Code 进行下载和安装。

二、安装TDM-GCC安装

访问:

[TDM-GCC安装](Download | tdm-gcc (jmeubank.github.io))

选中

在这里插入图片描述

下载完对应的资源之后,傻瓜式安装即可。TDM-GCC会自动加入环境变量。

三、安装C/C++环境

  1. Windows 系统需要安装 MinGW(配置教程);MacOS 自带 Clang ,无须安装。
  2. 在 VS Code 的插件市场中搜索 c++ ,安装 C/C++ Extension Pack 。

在这里插入图片描述

四、编写代码并进行编译

我这里是打开一个了已有的代码,编写完成之后,配置一下对应的launch.json文件,launch.json文件是用来配置和自定义调试会话的关键。

在这里插入图片描述

launch.json的内容如下:

{"configurations": [{"name": "(gdb) 启动","type": "cppdbg","request": "launch","program": "${fileDirname}\\${fileBasenameNoExtension}.exe","args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": false,"MIMode": "gdb","miDebuggerPath": "C:\\TDM-GCC-64\\bin\\gdb.exe","setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": true},{"description": "将反汇编风格设置为 Intel","text": "-gdb-set disassembly-flavor intel","ignoreFailures": true}],// "preLaunchTask": "C/C++: g++.exe 生成活动文件",}],"version": "2.0.0"
}

在弄一个tasks.json的文件,内容如下:

{"tasks": [{"type": "cppbuild","label": "C/C++: gcc.exe 生成活动文件","command": "C:\\TDM-GCC-64\\bin\\gcc.exe","args": ["-fdiagnostics-color=always","-g","${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "gdb调试器生成的任务。"},{"type": "cppbuild","label": "C/C++: g++.exe 生成活动文件","command": "C:\\TDM-GCC-64\\bin\\g++.exe","args": ["-fdiagnostics-color=always","-g","${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "gdb调试器生成的任务。"}],"version": "2.0.0"
}

其中对应的路径文件需要根据自己电脑安装的路径进行替换,我一般使用Everything来进行搜索一下,可以快速找到对应的gdb.exe路径用来进行替换

在这里插入图片描述

设置好了之后,最终 Vscode 工程目录结构如下,测试代码来自 hello-algo,在此感谢大佬 @Krahets

在这里插入图片描述

其他文件省略展示

打开一个.c的文件,进行调试:

在这里插入图片描述

打开一个.cpp的文件,进行调试看看:

在这里插入图片描述

经过实验,可以进行调试输出,是一次成功的实践。

有时候打开别人的代码时,看到中文乱码,我这也一并进行记录一下,方便后期查阅,打开设置按键,找到编辑器,找到文本,找到Encoding的选项,进行选择。

在这里插入图片描述

本文完!!


http://www.mrgr.cn/p/87668501

相关文章

怎样去保证 Redis 缓存与数据库双写一致性?

解决方案 那么我们这里列出来所有策略,并且讨论他们优劣性。 先更新数据库,后更新缓存先更新数据库,后删除缓存先更新缓存,后更新数据库先删除缓存,后更新数据库 先更新数据库,后更新缓存 这种方法是不推…

神策数据参与制定首份 SDK 网络安全国家标准

国家市场监督管理总局、国家标准化管理委员会发布中华人民共和国国家标准公告(2023 年第 13 号),全国信息安全标准化技术委员会归口的 3 项国家标准正式发布。其中,首份 SDK 国家标准《信息安全技术 移动互联网应用程序&#xff0…

Ubuntu20.04更换镜像源------最简单的教程

本教程适用于:Ubuntu22.04 操作流程 打开终端,运行以下命令: sudo sed -i "shttp://.*archive.ubuntu.comhttps://mirrors.tuna.tsinghua.edu.cng" /etc/apt/sources.list 运行后即完成更改。 如果找不到22.04的镜像&#xff…

uniapp h5 touch事件踩坑记录

场景:悬浮球功能 当我给悬浮球设置了 position: fixed; 然后监听悬浮球的touch事件,从事件对象中拿到clientY和clientX赋值给悬浮球的left和top属性。当直接赋值后效果应该是这样子: 注意鼠标相对悬浮球的位置,应该就是左上角&a…

【氮化镓】位错对氮化镓(GaN)电子能量损失谱(EEL)的影响

本文献《Influence of dislocations on electron energy-loss spectra in gallium nitride》由C. J. Fall等人撰写,发表于2002年。研究团队通过第一性原理计算,探讨了位错对氮化镓(GaN)电子能量损失谱(EEL)…

CSS(二)---【常见属性、复合属性使用】

零.前言 本篇文章主要阐述CSS常见属性、复合属性,更多前置知识请见作者其它文章: CSS(一)---【CSS简介、导入方式、八种选择器、优先级】-CSDN博客 1.CSS属性 CSS的属性有上百个,但是我们并不需要全部学习,只要我们学习一部分…

分布式处理

前言 大家好,我是jiantaoyab,这是我作为学习笔记原理篇的最后一章,一台计算机在数据中心里是不够的。因为如果只有一台计算机,我们会遇到三个核心问题。第一个核心问题,叫作垂直扩展和水平扩展的选择问题,…

数据库中的约束纯干货——主键约束

目录 (一)特点: (二)添加主键约束 2.1格式: 2.2举例: 2.3建立表级约束: 2.4建立表后增加主键约束 (三)复合主键 3.1格式: 3.2举例&#…

蓝桥杯真题Day40 倒计时19天 纯练题!

蓝桥杯第十三届省赛真题-统计子矩阵 题目描述 给定一个 N M 的矩阵 A,请你统计有多少个子矩阵 (最小 1 1,最大 N M) 满足子矩阵中所有数的和不超过给定的整数 K? 输入格式 第一行包含三个整数 N, M 和 K. 之后 N 行每行包含 M 个整数&#xf…

利用python搭建临时文件传输服务

场景 如果想从一台服务器上传输文件又多种方法,其中常见的是利用scp进行传输,但是需要知道服务器的账号密码才能进行传输,但有时候我们并不知道账号密码,这个时候我们就可以通过python -m SimpleHTTPServer 命令进行传输文件 启…

[ Linux ] git工具的基本使用(仓库的构建,提交)

1.安装git yum install -y git 2.打开Gitee,创建你的远程仓库,根据提示初始化本地仓库(这里以我的仓库为例) 新建好仓库之后跟着网页的提示初始化便可以了 3.add、commit、push三板斧 git add . //add仓库新增(变…

前端Web移动端学习day05

移动 Web 第五天 响应式布局方案 媒体查询Bootstrap框架 响应式网页指的是一套代码适配多端,一套代码适配各种大小的屏幕。 共有两种方案可以实现响应式网页,一种是媒体查询,另一种是使用bootstrap框架。 01-媒体查询 基本写法 max-wid…

Linux系统使用Docker部署Portainer结合内网穿透实现远程管理容器和镜像

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

放弃 Rust 选择 Zig,Xata 团队推出 pgzx —— 计划使用 Zig 开发基于 PG 的分布式数据库

Summary Xata 公司在基于 PostgresSQL 开发自己的分布式数据库,出于 Zig 和 C 语言以及 PostgreSQL 的 API 有更好的互操作性的考虑,他们选择了 Zig 而非当红炸子鸡语言 Rust。他们的博客文章中对 pgzx 进行了介绍。让我们来看下他们对 Zig 和 Rust 语言…

Qt消息机制和事件

Qt消息机制和事件 Qt消息机制和事件--2 事件 事件(event)是由系统或者 Qt 本身在不同的时刻发出的。当用户按下鼠标、敲下键盘,或者是窗口需要重新绘制的时候,都会发出一个相应的事件。一些事件在对用户操作做出响应时发出&…

IP组播基础

原理概述 IANA ( Internet Assigned Numbers Authority )将 IP 地址分成了 A 、 B 、 C 、 D 、 E5类,其中的 D 类为组播 IP 地址,范围是224.0.0.0~239.255.255.255。 一个 IP 报文,其目的地址如果是单播 IP 地址&#xff…

MLIR多层中间表示——用MLIR构建编译器(中)

1.3. 玩具语言IR方言 玩具语言方言:方言 在TableGen中声明性指定 def Toy_Dialect : Dialect {let summary = Toy IR Dialect;let description = [{这是对玩具语言方言的一个更长的描述...}];// 方言的命名空间.let name = toy;// 方言类定义所在的C++命名空间let cppNamespac…

Gitlab的流水线任务【实现每小时自动测试 dev分支的更新】

背景 在现代软件开发实践中,持续集成(Continuous Integration, CI)是确保代码质量和快速响应软件缺陷的关键策略。GitLab 提供了强大的 CI/CD 功能,允许开发者自动化测试和部署流程。本文将介绍如何设置 GitLab 流水线计划任务&a…

【iOS ARKit】3D文字

首先,3D场景中渲染的任何虚拟元素都必须具有网格(顶点及顶点间的拓扑关系),没有网格的元素无法利用GPU 进行渲染,因此,在3D 场景申渲染 3D文字时,文字也必须具有网格。在计算机系统中&#xff0…

OSCP靶场--pc

OSCP靶场–pc 考点(CVE-2022-35411[rpc漏洞chisel端口转发]) 1.nmap扫描 ┌──(root㉿kali)-[~/Desktop] └─# nmap -Pn -sC -sV 192.168.178.210 --min-rate 2500 Starting Nmap 7.92 ( https://nmap.org ) at 2024-03-28 04:07 EDT Nmap scan rep…