当前位置: 首页 > news >正文

VS Code 如何搭建C/C++开发环境

目录

1.VS Code是什么

2. VS Code的下载和安装

2.1 下载和安装

2.2.1 下载

2.2.2 安装

2.2 环境的介绍

2.3 安装中文插件

3. VS Code配置C/C++开发环境

3.1 下载和配置MinGW-w64编译器套件

3.1.1 下载

3.1.2 配置

3.2 安装C/C++插件

3.3 重启VSCode

4. 在VSCode上编写C语言代码并编译成功

4.1 打开文件夹

4.2 新建C语言文件,编写C语言代码

4.3 设置C/C++编译的选项: c_cpp_properties.json

4.4 创建执行任务: tasks.json

4.5 编译+执行

4.5.1 编译

4.5.2 执行

4.6 再写一个代码怎么办?

4.6.1 方法一

4.6.1.1 新建文件

4.6.1.2 执行

4.6.2 方法二

4.6.2.1 新建文件夹2025_02_17_test

4.6.2.2. 打开文件夹选择2025_02_17_test

4.6.2.3 编写代码

4.6.2.4 拷贝配置文件

4.5.2.5 编译+执行

4.7 一个工程中有多个.c文件怎么办?

4.7.1 创建文件

4.7.2 编写代码

4.7.3 修改配置文件tasks.json并验证结果

4.7.3.1 效果一

4.7.3.2 效果二

4.7.4 编译 + 运行

5. VSCode 怎么写C++的代码呢?

5.1 创建文件,编写代码

5.2配置g++.exe为编译器

5.3 生成C++源文件编译的tasks信息

5.4 编译 + 执行

6. VSCode的调试

6.1 创建launch.json文件

6.2 修改配置文件

6.3 开始调试


1.VS Code是什么

Visual Studio Code 简称 VS Code,是一款跨平台的、免费且开源的现代轻量级代码编辑器,支持几乎主流开发语言的语法高亮、智能代码补全、自定义快捷键、括号匹配和颜色区分、代码片段提示、代码对比等特性、也拥有对git的开箱即用的支持。同时、它还支持插件扩展,通过丰富的插件,用户能获得更多高效的功能。

一般有稳定版和体验版两个版本。

2. VS Code的下载和安装

2.1 下载和安装

2.2.1 下载

下载地址:Visual Studio Code - Code Editing. RedefinedVisual Studio Code redefines AI-powered coding with GitHub Copilot for building and debugging modern web and cloud applications. Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.https://code.visualstudio.com/

迅雷链接:

迅雷云盘迅雷云盘https://pan.xunlei.com/s/VOJ4TaX7OG6cK489gNBNqnPvA1?pwd=fddh
1. 点击Download

2. 点击Windows下载

3.下载中,等待任务栏下载完成即可

2.2.2 安装

1. 右击以管理员身份打开我们的可执行程序

2. 点击同意此协议,然后下一步

3. 更改路径

在这里可以更改软件的安装位置,我呢喜欢装在D盘,你也可以自己选择。然后点击下一步。

4. 点击下一步

5. 选择项

可以全部勾选上,至于快捷方式,看个人自己,然后点击下一步。

6. 安装

7. 等待安装完成

8. 点击完成

此时我们的VS Code就安装完成了。

2.2 环境的介绍

打开我们安装好的VS Code软件。

2.3 安装中文插件

毕竟这个VSCode默认是英文的,我们使用不习惯的话,可以安装中文插件,将VSCode的界面汉化的,

下载完成点击右下角.重启一下即可。

再次打开我们就汉化好了。

3. VS Code配置C/C++开发环境

VSCode 安装好之后,我们还是要知道,VSCode毕竟是一个高级的编辑器,只能用来写C/C++代码,不能直接编译代码。所以,如果我们要能使用VSCode搭建C/C++的编译和调试环境,还必须有编译器使用。为了方便,我们就使用 MinGw-w64, MinGw-w64 移植到windows平台的一个gcc编译器,使用起来也是非常方便的。

3.1 下载和配置MinGW-w64编译器套件

3.1.1 下载

下载地址:https://sourceforge.net/projects/mingw-w64/files/https://sourceforge.net/projects/mingw-w64/files/

 建议选择这个版本。

迅雷链接:

迅雷云盘迅雷云盘https://pan.xunlei.com/s/VOJ9ibzwlQ452IPLeoQ4jTAdA1?pwd=k4iw#接下来就是解压,解压出来后,进到文件夹中,拷贝mingw64这个文件夹到一个最简单的目录下,路径的名字不要有中文、空格、特殊字符等。

此时mingw64的编译器的路径就是: D : \mingw64

3.1.2 配置

配置MinGW64:

在windows电脑上,按win+s快捷键,或者直接在搜索框中搜索:环境变量

进入系统属性,点击【环境变量】

修改path环境变量

添加环境变量

添加的是mingw64的bin目录,我的我是放在了D盘下的。

然后一路确定下去即可。

验证一下:

在windows电脑上打开cmd窗口,输入:gcc --version或者 where gcc,要是能看到下面的界面,就说明minGW-w64的编译器套件依旧配置好了。

到此为止,Windows版本的gcc/g++编译器已经配置好了,如果你会使用gcc/g++命令行编译代码的话,已经可以正常使用了,但是我们如果使用VSCode来写代码,并且完成编译,还是不够的。

3.2 安装C/C++插件

要在VSCode上编译代码,还得配置C/C++插件,再次在扩展中搜索C/C++,点击安装。

3.3 重启VSCode

这一步很重要,让前面的设置生效,要不然后面会出现问题。

4. 在VSCode上编写C语言代码并编译成功

4.1 打开文件夹

在VSCode上写代码都是首先要打开文件夹的,这样也方便管理代码和编译器产生的可执行程序,和VSCode生成的配置文件等。

在写代码之前,我们要想清楚要把代码放在什么地方管理,比如在F盘下创建一个Code文件夹,用来管理我所写的代码,然后里面再创建一个文件夹,存放我的一个工程文件。

在我们写代码前先创建好文件夹,然后在VSCode中打开所新建的文件夹。

选择我们刚刚创建的文件夹。

然后点击信任此作者

然后在左边就能看见我的文件夹了,名字被大写了,这是VSCode的一个特点。

4.2 新建C语言文件,编写C语言代码

创建C语言文件:

编写代码:

代码写好了,接下来我们要编译代码。

4.3 设置C/C++编译的选项: c_cpp_properties.json

鼠标点在.c的源文件内部,按ctrl+shift+p快捷键,在弹出的界面中选择:【C/C++:编辑配置(UI)】,然后进入设置页面。(找不到了可以搜一下)

选择编译器:

点开小三角,选择mingw64下的bin目录下的gcc.exe,因为我还装了VS2019,所以选项很多。 

IntelliSense模式配置:

当我们配置好之后旁边会多出一个.vscode的文件。

这个里面就指定了我们用的编译器是什么样的编译器,windows下的sdk是什么样的,以及C语言和C++编译的标准,代码提示的模式是什么。

4.4 创建执行任务: tasks.json

要编译代码,我们接下来,在终端中:配置任务:

在弹出的页面中,选择【C/C++:gcc.exe 生成活动文件】

因为我这里还装了vs2019,所以有第一个,这里我们只需要选择第二个即可。

这时就生成了一个tasks.json文件,这个文件是专门是用来执行代码的编译任务的。

4.5 编译+执行

4.5.1 编译

完成上述的步骤,我们就准备好了所有的准备,接下来就可以编译并生成可执行程序了。

具体操作如下:

  1. 鼠标点在要编译的C语言代码中
  2. 然后执行【终端】-> 【运行生成任务】

如果一切正常的话,我们就能看到【终端】提示,就说明编译成功了。

然后这个时候旁边也就生成了可执行程序.exe文件了。

4.5.2 执行

按键盘的ctrl+`快捷键,打开VSCode自带的终端,就可以运行代码了。

这是输入:.\可执行程序的名字,即可以执行代码。

4.6 再写一个代码怎么办?

4.6.1 方法一

4.6.1.1 新建文件

如果你的代码还是单独的一个c文件,在当前打开文件夹就可以编写,那直接在当前打开的文件夹中新建.c源文件,编写代码,对当前的代码执行和上面一样的操作。

4.6.1.2 执行

4.6.2 方法二

如果你要写的代码需要单独文件夹管理,那就再次打开新的文件夹来编写代码,编译和执行了。

比如新的代码放在2025_02_17_test下面。

4.6.2.1 新建文件夹2025_02_17_test

4.6.2.2. 打开文件夹选择2025_02_17_test

首先关闭掉之前打开的文件

然后打开新的文件

然后点击信任此作者

4.6.2.3 编写代码

4.6.2.4 拷贝配置文件

这样时候我们就可以看到配置文件了,我们只需拷贝之前配置的就可以,不需要自己再次配置,拷贝过来啥都不需要修改。

4.5.2.5 编译+执行

4.7 一个工程中有多个.c文件怎么办?

4.7.1 创建文件

假设我们在一个工程中,下面有多个文件需要编译,这个我就直接在上次的工程中创建了,效果是一样的。

4.7.2 编写代码

现在只有一个main函数,然后main函数中调用别的文件中的函数。

4.7.3 修改配置文件tasks.json并验证结果

要能够编译一个文件中的多个文件,需要定制tasks.json文件的内容

编译多个源文件代码:

  • 通过把"${file}"修改为"${workspaceFolder}\\*.c",可以构建当前工作区的所有C文件。
  • 通过把"${file}"修改为"${workspaceFolder}\\*.cpp",可以构建当前工作区的所有C++文件。

修改编译输出的文件名:

  • 通过把"${fileDirname}\\${fileBasenameNoExtension}.exe",修改为:"${workspaceFolder}\\myProgram.exe",可以把编译输出的文件名硬编码为myProgram.exe,而不是与C文件同名。效果看4.7.3.1
  • 通过把"${fileDirname}\\${fileBasenameNoExtension}.exe",修改为:"${workspaceFolder}\\${workspaceRootFolderName}.exe",可以把编译输出的文件名为:打开的工作区文件夹名字。效果看4.7.3.2
4.7.3.1 效果一

4.7.3.2 效果二

4.7.4 编译 + 运行

5. VSCode 怎么写C++的代码呢?

5.1 创建文件,编写代码

5.2配置g++.exe为编译器

鼠标点在.cpp的源文件内部,按ctrl+shift+p快捷键,在弹出的界面中选择:【C/C++:编辑配置(UI)】,然后进入设置页面。

找到配置名称,这里我们再添加一个C++的配置,点击【添加配置】

输入C++,当然你也可以根据自己的喜好命名,然后点击确定。

编译器路径,根据自己的mingw64的路径,g++.exe。

代码提示:

这时再c_cpp_propertise.json文件中就能看到一个名字叫:C++配置。

5.3 生成C++源文件编译的tasks信息

点中.cpp文件,菜单中在终端下配置任务。

选择g++.exe 生成活动文件

这个时候就在tasks.json中生成了C++的编译选项了

这个时候如果想修改的话前面也写了,按照前面的修改即可,默认也行。

5.4 编译 + 执行

在弹出的框中选择g++

然后运行 

6. VSCode的调试

前面的都是如何去编译代码,当我们生成一个可执行程序的时候,如果遇到运行时问题,我们就要想办法调试代码,那么VSCode如何调式代码呢?

其实在VSCode上调试关键也是依赖一个配置文件叫:launch.json。

6.1 创建launch.json文件

首先点击调试,创建launch.json文件,然后选择【C++(GDB/LLDB)】

添加配置

选择C/C++ gdb启动

6.2 修改配置文件

  • 修改"program"为:"${workspaceFolder}\\${workspaceRootFolderName}.exe" ,这个内容和tasks.json中的可执行文件的路径匹配。
  • 修改"miDebuggerPath"为:"D:\\mingw64\\bin\\gdb.exe",这个路径根据自己实际方MinGW-w64的文件路径调整。(图片中的program有问题,参考这段文字中的配置)

6.3 开始调试

当launch.json文件生成后,我们只要打断点开始调试就行。

调试的快捷键和VS系列的IDE是一样的,如:

  • F9 -- 打断点/取消断点
  • F5 -- 启动调试
  • F11 -- 逐语句调试
  • F10 -- 逐过程调试

启动调试后,也是可以使用监视窗口查看变量等程序执行过程中的信息。

  

相关文章:

VS Code 如何搭建C/C++开发环境

目录 1.VS Code是什么 2. VS Code的下载和安装 2.1 下载和安装 2.2.1 下载 2.2.2 安装 2.2 环境的介绍 2.3 安装中文插件 3. VS Code配置C/C开发环境 3.1 下载和配置MinGW-w64编译器套件 3.1.1 下载 3.1.2 配置 3.2 安装C/C插件 3.3 重启VSCode 4. 在VSCode上编写…...

【Linux C/C++开发】Linux系统轻量级的队列缓存mqueue

前言 开发设计时,通常会对业务流程进行模块化,有些流程之间,不要求同步,但又需要传递信息时,如果存储到数据库,效率降低很多,如果是存放在内存是最好的。此时可以选择系统的IPC(进程…...

排查生产sql查询缓慢

生产投产检验,发现查询客户明细的接口数据响应需要5秒以上,通过接口可以查询到详细的后端代码 1. 先排查后端的代码实现,并未出现复杂逻辑,那么就应该是sql的问题 2. 通过explain对sql进行解析,发现sql没有走索引 3.…...

idea从远程gitee拉取项目

文章目录 从gitee上面拿到项目地址填写远程地址,并且设置项目保存位置拉取成功 从gitee上面拿到项目地址 填写远程地址,并且设置项目保存位置 拉取成功...

【UCB CS 61B SP24】Lecture 5 - Lists 3: DLLists and Arrays学习笔记

本文内容为构建双向循环链表、使用 Java 的泛型将其优化为通用类型的链表以及数组的基本语法介绍。 1. 双向链表 回顾上一节课写的代码,当执行 addLast() 与 getLast() 方法时需要遍历链表,效率不高,因此可以添加一个指向链表末尾的索引&am…...

软件测试与软件开发之间的关系

软件测试与软件开发的关系 软件测试(Software Testing)与软件开发(Software Development)是软件工程中的两个核心环节,它们相辅相成,确保软件的质量和功能满足需求。以下是两者之间的关系解析:…...

QT 建立一片区域某种颜色

绘制一个位于(50, 50)的200x200的红色矩形 #include "widget.h" #include "ui_widget.h" #include <QPainter>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);update(); }Widget::~Widget() {delete…...

LeetCode--23. 合并 K 个升序链表【堆和分治】

23. 合并 K 个升序链表 给你一个链表数组&#xff0c;每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中&#xff0c;返回合并后的链表。 正文 这道题有多种解决方案 堆 比较容易&#xff0c;又比较直观的就是堆排序&#xff0c;将每个节点加入最小根堆中&…...

tp6上传文件大小超过了最大值+验证文件上传大小和格式函数

问题&#xff1a; 最近用tp6的文件上传方法上传文件时报文件过大错误。如下所示&#xff1a; $file $this->request->file(file);{"code": 1,"msg": "上传文件大小超过了最大值&#xff01;","data": {"code": 1,&q…...

解决 Mac 只显示文件大小,不显示目录大小

前言 在使用 mac 的时候总是只显示文件的大小&#xff0c;不显示文件夹的大小&#xff0c;为了解决问题可以开启“计算文件夹”。 步骤 1.进入访达 2.工具栏点击“显示”选项&#xff0c;点击 “查看显示选项” 3.勾选 显示“资源库"文件夹 和 计算所有大小 或者点击…...

分布式大语言模型服务引擎vLLM论文解读

论文地址&#xff1a;Efficient Memory Management for Large Language Model Serving with PagedAttention 摘要 大语言模型&#xff08;LLMs&#xff09;的高吞吐量服务需要一次对足够多的请求进行批处理。然而&#xff0c;现有系统面临困境&#xff0c;因为每个请求的键值…...

快速入门——Vue框架快速上手

学习自哔哩哔哩上的“刘老师教编程”&#xff0c;具体学习的网站为&#xff1a;8.Vue框架快速上手_哔哩哔哩_bilibili&#xff0c;以下是看课后做的笔记&#xff0c;仅供参考。 第一节&#xff1a;前端环境准备 编码工具VSCode【www.code.visualstudio.com】/WebStorm也可&am…...

机器学习,我们主要学习什么?

机器学习的发展历程 机器学习的发展历程&#xff0c;大致分为以下几个阶段&#xff1a; 1. 起源与早期探索&#xff08;20世纪40年代-60年代&#xff09; 1949年&#xff1a;Hebb提出了基于神经心理学的学习机制&#xff0c;开启了机器学习的先河1950年代&#xff1a;机器学习的…...

安卓burp抓包,bypass ssl pinning

好久好久没有发东西了。主要是懒。。。 这几天在搞apk渗透&#xff0c;遇到了burp无法抓包问题&#xff0c;觉得可以写下来。 问题描述 1. 一台安卓手机&#xff0c;装了面具&#xff0c;可以拿到root 2. 电脑上有burp&#xff0c;设置代理 3.手机和电脑连同一个网段&…...

【如何基于Debian构建Kali Linux】

如何基于Debian构建Kali Linux 修改apt源获取Kali的apt密钥更新并安装Kali Linux软件包添加非root用户 在Linux系统的应用领域中&#xff0c;Kali Linux因其在渗透测试、安全审计等方面的出色表现而备受关注。Kali Linux是一个基于Debian的Linux发行版。接下来&#xff0c;将介…...

Hopper架构 GEMM教程

一 使用 1.1 makefile compile:nvcc -arch=sm_90a -lcuda -lcublas -std=c++17 matmul_h100_optimal.cu -o testrun:./test加入-lcublas,不然会有函数无法被识别 二 代码分析 2.1 kernel外参数分析 2.1.1 基本参数 constexpr int BM = 64*2;constexpr int BN = 256;cons…...

CV -- 基于GPU版CUDA环境+Pycharm YOLOv8 目标检测

目录 下载 CUDA 下载 cuDNN 下载 anaconda 安装 PyTorch pycharm 搭配 yolo 环境并运行 阅读本文须知&#xff0c;需要电脑中有 Nvidia 显卡 下载 CUDA 打开 cmd &#xff0c;输入 nvidia-smi &#xff0c;查看电脑支持 CUDA 版本&#xff1a; 我这里是12.0&#xff0c;进入…...

ELK8.17部署(Ubantu24x64)

检查java环境 ELK8.x不支持java8 若无环境可执行 sudo apt install openjdk-17-jre-headless 准备安装包 官网下载地址: ELK products 搜Elasticsearch、Kibana、Logstash、Filebeat versions需一致&#xff0c;这里使用8.17.0 Elasticsearch Kibana Logstash Filebeat e…...

Python glob模块使用示例代码

Python 的 glob 模块位于标准库中,专门用于在文件系统中进行 文件路径模式匹配(与 Shell 中的通配符匹配类似)。它可以根据 通配符(如 *、? 和 [])来查找符合条件的文件路径。 1. glob 模块的核心功能 路径模式匹配:根据指定的通配符模式,匹配对应的文件路径。递归搜索…...

npm、pnpm和yarn有什么区别

1. 性能和速度 npm&#xff1a;在较早的版本中&#xff0c;速度较慢&#xff0c;尤其是在安装大型依赖集时。自npm 5以后的版本引入了缓存机制&#xff0c;性能有所提升。yarn&#xff1a;由Facebook开发&#xff0c;主要目标是提高安装速度。使用了缓存和并行安装&#xff08;…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径&#xff0c; 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解&#xff0c;但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后&#xff0c;通常在该文件中会出现以下配置&…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...