VSCode搭建C/C++开发环境【Windows】

news2024/10/12 16:07:15

VSCode搭建C/C++开发环境

  • 1. 配置C/C++开发环境
    • 1.1 下载和配置MinGW-w64编译器套件
    • 1.2 安装C/C++插件
  • 2. 在VSCode上编写C语言代码,并编译执行
    • 2.1 先打开一个文件夹,写一份C语言代码
    • 2.2 设置C/C++编译的选项:c_cpp_properties.json
    • 2.3 创建执行任务:tasks.json
    • 2.4 执行
    • 2.5 复用配置文件
  • 3. 一个工程中有多个.c文件需要编译怎么办?
  • 4. 如何编译C++源文件?
  • 5. VSCode的调试


1. 配置C/C++开发环境


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


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

1. 下载

  • 下载地址:https://sourceforge.net/projects/mingw-w64/files/
    在这里插入图片描述

  • 将下载后得到的文件解压缩,得到一个文件夹。我们点进入,发现里面还有一个文件夹mingw64
    在这里插入图片描述

  • 接下来将这个文件夹放在一个方便管理的地方,建议放在C盘或D盘的根目录下。
    在这里插入图片描述

  • 此时mingw64的编译器路径就是C:\mingw64
    在这里插入图片描述

2. 配置

  • 在windows电脑上,按win + s快捷键,打开快捷框,在搜索框中搜索:环境变量。
    在这里插入图片描述
  • 进入系统属性,点击环境变量:
    在这里插入图片描述
  • 进入环境变量管理页面:
    在这里插入图片描述
  • 新加一个环境变量值,我们前面已经将mingw64拷贝到C:\mingw64目录下了,在这个目录下有一个bin的文件夹,这个文件夹下是gcc等编译器的可执行文件,所以我们将:C:\mingw64\bin添加到path的环境变量中,点击确定。
    在这里插入图片描述
  • 验证一下:在windows电脑上打开cmd窗口,输入:gcc --version或者where gcc,要是能看到下面的界面,就说明MinGW-w64的编译器套件已经配置好了。
    在这里插入图片描述

1.2 安装C/C++插件


要在VSCode上编译代码,还需要配置C/C++插件,在VSCode的插件中搜索:C/C++,点击安装。(我这里已经下载好了)

在这里插入图片描述

安装好后要重启VSCode,让之前的设置生效。


2. 在VSCode上编写C语言代码,并编译执行


2.1 先打开一个文件夹,写一份C语言代码


在D盘中创建一个文件夹,打开它。

在这里插入图片描述

编写一份测试用的C语言代码:

在这里插入图片描述


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


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

在这里插入图片描述

配置【编译器路径】为你安装的MingGW-64目录下的gcc。

在这里插入图片描述

更改智能提示模式:

在这里插入图片描述

配置完成后,我们可以看到多了一个c_cpp_properties.json文件,这里面其实就是各种配置信息。

在这里插入图片描述


2.3 创建执行任务:tasks.json


在终端中选择配置任务。

在这里插入图片描述

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

在这里插入图片描述

选择之后,会自动生成一个tasks.json文件,我们来大致看一下这个文件中的内容:

在这里插入图片描述

file就是指要编译的文件,fileDirname指当前文件夹,fileBasenameNoExtension翻译过来就是文件基础名无拓展,表示生成的可执行程序名称。如果编译的文件是test.c,生成的可执行程序就是test


2.4 执行


鼠标点在要执行的源文件中,在终端中点击【运行生成任务】:

在这里插入图片描述

选择C/C++:gcc.exe

在这里插入图片描述

如果执行成功,会看到:

在这里插入图片描述

生成了一个test.exe文件:

在这里插入图片描述

接下来我们运行它,按 ctr + ` 快捷键打开终端窗口,输入 ./test./test.exe

在这里插入图片描述


2.5 复用配置文件


我们之前生成了两个配置文件,一个是c_cpp_properties.json,一个是tasks.json。这两个文件都在.vscode这个文件夹下。

现在我们想在另一个目录中,编译执行代码,只需要将这个.vscode文件夹复制到另一个目录中,然后按照 2.4 的步骤再来一遍就可以了。


3. 一个工程中有多个.c文件需要编译怎么办?


1. 新建一个文件夹,将之前的.vscode拷贝过来,写两段代码

在这里插入图片描述

2. 改造tasts.json

  • 编译多个源代码文件:
    • 通过把${file}修改为${workspaceFolder}\\*.c,可以构建当前工作区中的所有C文件。
    • 通过把${file}修改为${workspaceFolder}\\*.cpp,可以构建当前工作区中的所有C++文件。
  • 修改编译输出的文件名:
    • 通过把{fileDirname}\\${fileBasenameNoExtension}.exe,修改为${workspaceFolder}\\myProgram.exe可以把编译输出的文件名硬编码为myProgram.exe
    • 也可以修改为${workspaceFolder}\\${workspaceRootFolderName}.exe可以令编译输出的文件名为:打开的工作区文件夹名字.exe。

3. 示例

  • 改造tasks.json
    在这里插入图片描述
  • 在终端点击【运行生成任务】:
    在这里插入图片描述
  • 生成了前缀与当前工作目录同名的文件test1.exe,在终端输入./test1可以运行它:
    在这里插入图片描述

4. 如何编译C++源文件?


1. 配置c_cpp_properties.json

  • ctrl + shift + p 快捷键,在弹出的界面中选择:【C/C++:编辑配置(UI)】,然后进入设置页面:
    在这里插入图片描述

  • 修改编译器路径:
    在这里插入图片描述

  • 智能提示模式不用改:
    在这里插入图片描述

2. 配置tasks.json

  • 在终端点击【配置任务】:
    在这里插入图片描述

  • 选择【C/C++:g++ 生成活动文件】
    在这里插入图片描述

  • 可以发现tasks.json文件中多了如下配置内容:
    在这里插入图片描述

3. 如需要编译多个.cpp文件,参开3【编译多个.c文件】


5. VSCode的调试


1. 创建launch.json文件

  • 首先点击调试,创建launch.json文件:
    在这里插入图片描述

  • MingGW64下的调试工具是gdb,所以我们选择【C/C++(GDB/LLDB)】:
    在这里插入图片描述

  • 会生成一个launch.json文件:
    在这里插入图片描述

  • 添加配置,选择【C/C++(gdb)启动】:
    在这里插入图片描述

  • 修改两个地方:
    在这里插入图片描述

  • 要调试的程序名,可以复用tasks.json中的配置;调试工具之前我们已经下过了,路径如下:
    在这里插入图片描述
    在这里插入图片描述

2. 开始调试

  • launch.json文件生成后,我们只需要打断点开始调试就可以了。
  • 调试的快捷键和VS系列的IDE是一样的,如:
    • F9:打断点/取消断点;
    • F5:启动调试;
    • F10:逐过程调试;
    • F11:逐语句调试。
  • 启动调试后,也是可以使用监视窗口查看变量等程序执行过程中的信息的。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2208277.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CDGA|数据治理:唤醒“沉睡”的数据,激发无限价值潜能

在当今这个信息爆炸的时代,数据已成为企业最宝贵的资产之一。然而,许多企业面临着数据孤岛、数据质量低下、数据利用率不高等问题,导致大量“沉睡”的数据未能发挥其应有的价值。数据治理,作为解锁这些数据宝藏的钥匙,…

连夜爆肝收藏各大云服务新老用户优惠活动入口地址(内含免费试用1个月的地址),适用于小白,大学生,开发者,小企业老板....

具体请前往:云服务器优惠活动入口大全--收藏各主流云厂商的云服务器等系列产品的优惠活动入口,免费试用1个月活动入口,让新老用户都能根据使用场景和身份快速锁定优惠权益 经济下滑,被优化增多,大学生就业难&#xff0…

Linux之如何找回 root 密码?

1、启动系统,进入开界面,在界面中按“e"进入编辑界面 2、进入编辑界面,使用键盘上的上下键把光标往下移动,找到以”Linux16“开通内容所在的行数,在行的最后面输入:init/bin/sh 3、输入完成后&…

Windows,MySQL主从复制搭建

前提:windows环境,同一个服务器安装多个相同版本的mysql数据库 多个MySQL服务搭建完成后,下面我们进行主从复制的相关配置 1.主数据库 执行指令 #创建用户 CREATE USER slavelocalhost IDENTIFIED BY 123456;#授权 GRANT REPLICATION SLA…

plpo vue实战版教程

vue实战版教程 什么是plpo安装1.将plop添加到您的项目2.全局安装plop(可选,但建议使用方便)3.在项目根目录下创建一个 plopfile.js vue 实战(后台管理系统 - 增删改查)所需文件文件介绍创建配置文件 plopfile.js创建模板和脚本命令文件模板创…

Emu3:北京智源推出AI多模态世界模型,超越DeepMind和微软,刷新了8项性能指标

Emu3是北京智源人工智能研究院推出的一款原生多模态世界模型,采用智源自研的多模态自回归技术路径,在图像、视频、文字上联合训练,使模型具备原生多模态能力,实现图像、视频、文字的统一输入和输出。Emu3将各种内容转换为离散符号…

食堂校园预约就餐系统小程序的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,商品管理,论坛管理,用户管理,商家管理,公告信息管理,基础数据管理 微信端账号功能包括:系统首页&#xf…

【Flutter、H5、Web?前端个人总结】分享从业经历经验、自我规范准则,纯干货

前言 hi,正式接触web前端已经经过了两年的时间,从大学的java后端转型到web前端,再到后续转战Flutter,逐渐对前端有了一些心得体会,其实在当下前端的呈现形式一直在变化,无论你是用原生、还是web还是混编的…

vulnhub-Kioptrix_Level_1靶机的测试报告

目录 一、测试环境 1、系统环境 2、使用工具/软件 二、测试目的 三、操作过程 1、解决检测不到IP的问题 2、信息搜集 3、利用exp ①mod_ssl2.8版本漏洞 ②smb2.2版本漏洞 四、结论 一、测试环境 1、系统环境 渗透机:kali2021.1(192.168.202.134) 靶 机…

【前端构建】Webpack: 现代前端开发的核心工具

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 Webpack: 现代前端开发的核心工具1. 引言2. Webpack 的核心概念2.1 入口&#x…

vmware下ubuntu18.04中使用笔记本的摄像头

步骤1:在windows中检查相机状态 win10系统中,在左下的搜索栏,搜索“相机”,点击进入即可打开相机,并正常显示图像。 注意:如果相机连接到了虚拟机,则不能显示正常。 步骤2:…

解决ubuntu 下 VS code 无法打开点击没反应问题

从Ubuntu 22.04 升级到ubuntu 24.04 后,发现Vsode无法打开,不论是点击图标,还是terminator里面运行code 可执行程序,均没有反应。debug如下: 提示权限不够。 解决方案: sudo sysctl -w kernel.apparmor_restrict_unp…

最佳BD仓储物流方案选择秘诀!

BD仓储部署策略的执行方案是一项既精细又全面的流程,目的在于保障BD装备的安全保管、高效化管理以及迅速调动。以下详列了一项涵盖众多核心环节及要素的具体执行方案: 一、项目开展与策划 确立项目核心目标:精准定位BD仓储解决方案的关键目…

瑞芯微RK3399开发板Android7.1修改网络优先级方法,触觉智能演示

本文介绍Android7.1修改网络优先级方法,基于触觉智能SBC3968主板,搭载瑞芯微RK3399芯片,这块主板的网络优先级默认是网口>WiFi>4G,下面就手把手教大家怎么修改。 1、查看当前网络优先级数值 源码根目录下执…

springboot乐享田园系统

基于springbootvue实现的乐享田园系统 (源码L文ppt)4-080 4.3 系统结构设计 构图是系统的体系结构,体系结构是体系结构体系的重要组成部分。系统的总体结构设计如图4-2所示。 图4-2 系统总体架构图 4.4 数据库设计 4.4.1 数据…

IDEA使用Alibaba Cloud Toolkit插件自动化部署jar包

一、下载插件 二、添加服务器主机 三、填写自己服务器配置 四、添加配置 五、配置说明 六、选择maven打包模块 七、maven打包后的jar包位置配一下 八、点击运行发现成功

MySQL-数据库的基础操作 o(´^`)o

文本目录: ❄️一、数据库操作: ☑ 1、查看所有的数据库: ☑ 2、创建数据库: ☑ 3、使用数据库: ☑ 4、删除数据库: ❄️二、常用的数据类型: ➷ 1、数值类型: ➷ 2、字符串类型&a…

MacOS安装MySQL和Navicat

MacOS安装MySQL和Navicat 前言一、MySQL1、下载并安装 MySQL2、启动 MySQL 并连接3、创建数据库 二、Navicat1、官网下载2、安装3、配置链接 叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧&#xff01…

(JAVA)B树和B+树的实现原理阐述

1. B 树 2-3树中,一个节点最多能有两个key,它的实现红黑树中适用对链接染色的方式去表达这两个key。下面将学习另一种树形结构B树,这种数据结构中,一个节点允许多余两个key的存在。 B树是一种树状数据结构,它能够存储…

Hopfield神经网络求解旅行商问题(Traveling Salesman Problem,TSP),提供完整MATLAB代码,复制粘贴即可运行

Hopfield神经网络是以美国物理学家约翰霍普菲尔德(John Hopfield)的名字命名的。他在1982年提出了这种类型的神经网络模型,因此通常被称为Hopfield网络。Hopfield网络是一种早期的人工神经网络,具有以下特点: 递归连接…