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 编译
完成上述的步骤,我们就准备好了所有的准备,接下来就可以编译并生成可执行程序了。
具体操作如下:
- 鼠标点在要编译的C语言代码中
- 然后执行【终端】-> 【运行生成任务】
如果一切正常的话,我们就能看到【终端】提示,就说明编译成功了。
然后这个时候旁边也就生成了可执行程序.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 个升序链表 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 正文 这道题有多种解决方案 堆 比较容易,又比较直观的就是堆排序,将每个节点加入最小根堆中&…...
tp6上传文件大小超过了最大值+验证文件上传大小和格式函数
问题: 最近用tp6的文件上传方法上传文件时报文件过大错误。如下所示: $file $this->request->file(file);{"code": 1,"msg": "上传文件大小超过了最大值!","data": {"code": 1,&q…...

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

分布式大语言模型服务引擎vLLM论文解读
论文地址:Efficient Memory Management for Large Language Model Serving with PagedAttention 摘要 大语言模型(LLMs)的高吞吐量服务需要一次对足够多的请求进行批处理。然而,现有系统面临困境,因为每个请求的键值…...

快速入门——Vue框架快速上手
学习自哔哩哔哩上的“刘老师教编程”,具体学习的网站为:8.Vue框架快速上手_哔哩哔哩_bilibili,以下是看课后做的笔记,仅供参考。 第一节:前端环境准备 编码工具VSCode【www.code.visualstudio.com】/WebStorm也可&am…...
机器学习,我们主要学习什么?
机器学习的发展历程 机器学习的发展历程,大致分为以下几个阶段: 1. 起源与早期探索(20世纪40年代-60年代) 1949年:Hebb提出了基于神经心理学的学习机制,开启了机器学习的先河1950年代:机器学习的…...

安卓burp抓包,bypass ssl pinning
好久好久没有发东西了。主要是懒。。。 这几天在搞apk渗透,遇到了burp无法抓包问题,觉得可以写下来。 问题描述 1. 一台安卓手机,装了面具,可以拿到root 2. 电脑上有burp,设置代理 3.手机和电脑连同一个网段&…...
【如何基于Debian构建Kali Linux】
如何基于Debian构建Kali Linux 修改apt源获取Kali的apt密钥更新并安装Kali Linux软件包添加非root用户 在Linux系统的应用领域中,Kali Linux因其在渗透测试、安全审计等方面的出色表现而备受关注。Kali Linux是一个基于Debian的Linux发行版。接下来,将介…...
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 环境并运行 阅读本文须知,需要电脑中有 Nvidia 显卡 下载 CUDA 打开 cmd ,输入 nvidia-smi ,查看电脑支持 CUDA 版本: 我这里是12.0,进入…...
ELK8.17部署(Ubantu24x64)
检查java环境 ELK8.x不支持java8 若无环境可执行 sudo apt install openjdk-17-jre-headless 准备安装包 官网下载地址: ELK products 搜Elasticsearch、Kibana、Logstash、Filebeat versions需一致,这里使用8.17.0 Elasticsearch Kibana Logstash Filebeat e…...
Python glob模块使用示例代码
Python 的 glob 模块位于标准库中,专门用于在文件系统中进行 文件路径模式匹配(与 Shell 中的通配符匹配类似)。它可以根据 通配符(如 *、? 和 [])来查找符合条件的文件路径。 1. glob 模块的核心功能 路径模式匹配:根据指定的通配符模式,匹配对应的文件路径。递归搜索…...
npm、pnpm和yarn有什么区别
1. 性能和速度 npm:在较早的版本中,速度较慢,尤其是在安装大型依赖集时。自npm 5以后的版本引入了缓存机制,性能有所提升。yarn:由Facebook开发,主要目标是提高安装速度。使用了缓存和并行安装(…...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...

招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...
Spring Security 认证流程——补充
一、认证流程概述 Spring Security 的认证流程基于 过滤器链(Filter Chain),核心组件包括 UsernamePasswordAuthenticationFilter、AuthenticationManager、UserDetailsService 等。整个流程可分为以下步骤: 用户提交登录请求拦…...
Python实现简单音频数据压缩与解压算法
Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中,压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言,提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...