当前位置: 首页 > 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;…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

深度学习水论文:mamba+图像增强

&#x1f9c0;当前视觉领域对高效长序列建模需求激增&#xff0c;对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模&#xff0c;以及动态计算优势&#xff0c;在图像质量提升和细节恢复方面有难以替代的作用。 &#x1f9c0;因此短时间内&#xff0c;就有不…...

Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换

目录 关键点 技术实现1 技术实现2 摘要&#xff1a; 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式&#xff08;自动驾驶、人工驾驶、远程驾驶、主动安全&#xff09;&#xff0c;并通过实时消息推送更新车…...

c++第七天 继承与派生2

这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分&#xff1a;派生类构造函数与析构函数 当创建一个派生类对象时&#xff0c;基类成员是如何初始化的&#xff1f; 1.当派生类对象创建的时候&#xff0c;基类成员的初始化顺序 …...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器

拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件&#xff1a; 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...