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

2023-05-16

目录

1.VScode是什么?

2.VScode的下载和安装 

2.1下载和安装

下载:

安装:

 2.2环境的介绍

环境介绍:

安装中文版插件 :

 3.VScode配置C/C++开发环境

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

下载:

配置Mingw64:

 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 创建执行任务:tasksjson 

4.5编译+执行

 4.5.1编译

4.5.2执行 

5.再写一个代码该怎么办?

 5.1方法1:

 5.2方法2

6.一个工程中有多个.c文件该怎么去编译呢?

6.1拷贝文件

6.2调整tasks.json文件中的内容

6.3执行

7. VScode的调试

7.1创建launch.json 文件

7.2开始调试

 


1.VScode是什么?

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

所谓的跨平台指的是可以在多种环境下都可以使用:

2.VScode的下载和安装 

2.1下载和安装

下载:

下载地址:https://code.visualstudio.com/download

 根据自己的需要进行下载即可。

安装:

双击安装包,选择合适的目录

 2.2环境的介绍

环境介绍:

安装中文版插件 :

 毕竟这个VScode 默认是英文的,如果使用不习惯的话,可以安装中文插件,将VSCode的界面汉化的,在左边的侧边栏中点击插件,就可以搜索: Chinese,显示的第一个插件就是汉化包,直接安装即可。

 点击Install下载插件,安装完汉化包后,立马就在右下角提示,如下窗口,点击蓝色文字,会自动重启VSCode,即可汉化使用,非常方便。

 

 汉化之后的界面:

 3.VScode配置C/C++开发环境

 VSCode毕竟是一个高级的编辑器,只能用来写C/C++代码,不能直接编译代码。所以,如果我们要能使用VSCode搭建C/C++的编译和调试环境,还必须有编译器使用。为了方便,我们就使用 MinGW-w64,MinGW-W64 是移植到Windows平台的一个gcc编译器,使用起来也是非常方便的。下面我们就演示怎么下载和配置MinGw-w64。

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

下载:

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

要注意,进入网站不要直接点击下载,往下面拉,找到下图所对应的位置:

 直接点击,就会自动进行下载,下载完成之后会得到这样的一个压缩包:

 如果你和我一样使用的是360压缩软件,就可以得到这样的压缩包,如果使用的是别的压缩软件,得到的压缩包可能有所差异,但是名字都是一样的。

然后解压缩,这里要注意,需要将解压缩之后的mingw放在一个容易管理的路径下,以便使用,比如放在C/D盘的根目录下面。

 解压之后就得到了这样的一个文件,然后点击进入,里面有一个mingw64的文件,这就是我们所下载的编译套件,然后将他拷贝一份,直接放在C/D盘的根目录下面。

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

配置Mingw64:

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

 然后点击,进去之后找到环境变量,然后在下面的系统变量中找到Path:

 然后点击进入Path:点击新建,然后将mingw64中的bin文件的路径拷贝进去,然后依次点击确定

 需要将我们打开的三个窗口都点击确定即可配置完成!!

在操作完之后,我们最好验证一下:
在windows电脑上打开cmd窗口,输入: gcc -version 或者 where gcc ,要是能看到下面的界面,就说明MinGW-w64的编译器套件已经配置好了。

 

 如果输入命令之后出现这个界面那么证明已经配置成功。

 3.2安装C/C++插件

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

3.3重启VScode

重启VScode是为了让我们之前的配置都生效,以便在后面的使用过程中不会出现错误

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

 4.1打开文件夹

在VSCode上写代码都是首先要打开文件夹的,这样也方便管理代码和编译器产生的可执行程序,和VSCode生成的配置文件等。
在写代码前,我们想清楚想把代码放在什么地方管理,比如: 在D盘下,我创建一个code的文件夹,我希望以后我写的代码都管理在code目录下,然后每天写的代码我再使用一个文件夹管理,比如: test_4_9,如下图:

然后我们需要在VScode中添加这个文件夹,打开VScode左边的文件资源管理器,然后点击打开文件夹,将我们创建好的文件添加进去:

 然后勾选信任,进行下一步:

 打开成功之后发现VScode里面显示的都是大写字母:

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

 创建C语言文件:

 然后我们就可以编写C语言代码了,比如要在屏幕上打印Hello World:

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

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

 点进去之后我们要设置我们的编译器路径和IntelliSense 模式:

 

4.4 创建执行任务:tasksjson 

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

 然后选择gcc.exe:

 打开之后就会出现一个新的文件夹:这个文件是专门来执行编译任务的。

4.5编译+执行

 4.5.1编译

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

1.鼠标点在要编译的C语言代码中

2.然后执行[终端]->[运行生成任务] 

 

 

 执行成功之后会生成一个test.exe的可执行程序:

4.5.2执行 

然后将上一次运行之后的终端关闭,然后按键盘的 Ctrl+ `(Esc下面的按键)快捷键,打开VSCode自带的终端,就可以运行代码了这时输入: .\可执行程序的名字,即可以执行代码,如下图:

 然后输入命令:.\+可执行程序的名字:

5.再写一个代码该怎么办?

 5.1方法1:

在本文件下面编写新的代码:

如果你的代码还是单独的一个.c文件,在当前打开文件夹中就可以编写,那直接在当前打开的文件中新建.c源文件,编写代码,对当前的代码,直接执行[终端]->[运行生成任务] :

 然后再打开VScode自带的终端,输入.\+可执行程序名字:

 5.2方法2

创建新文件重新编写代码:

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

先创建新的文件夹test_4_10,然后将test_4_9中的vscode这个文件夹拷贝到test_4_10文件中,这时再在VScode中添加文件夹test_4_10之后就会发现新添加的文件夹中也有我们第一次创建文件夹的两个文件夹:

 

 在我们新添加的文件中就出现了这两个文件

然后我们就可以编写代码了:

 写好代码之后就可以正常的执行代码,过程和上面的过程一样:终端-》运行生成任务-》打开VScode自带的终端-》输入.\+可执行程序名字:

6.一个工程中有多个.c文件该怎么去编译呢?

假设我们有一个工程multiple_files下面有多个文件需要编译,如下图: 

在multiple_files下面有两个文件,需要执行一次加法运算,那我们该怎么去处理呢?

 如何一次同时编译执行两个文件呢?

6.1拷贝文件

先把之前已经写好的配置文件拷贝一份放在multiple_files这个目录下面。

6.2调整tasks.json文件中的内容

编译多个源代码文件:


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

 

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


修改编译输出的文件名:


1.通过把"${fileDirname}\\${fileBasenameNoExtension}.exe",修改为:"${workspaceFolder}\\myProgram.exe"可以把编译输出的文件名硬编码myProgram.exe,而不是与C文件同名。


2.通过把"${fileDirname}\\${fileBasenameNoExtension}.exe",修改为:"${workspaceFolder}\\${workspaceRootFolderName}.exe",可以把编译输出的文件名为: 打开的工作区文件夹名字.exe。

以上的的两种方式都是可行的,我们在这里选择第二种方法,让生成的可执行程序与我们的文件名相同:

 

6.3执行

按照之前的执行操作流程进行操作即可:

7. VScode的调试

前面讲解的都是如何去编译代码,当我们生成一个可支持程序的时候,如果遇到了运行时的问题,我们就要想办法调试代码,那VSCode如何调试代码呢?接下来听我细细道来~其实在VSCode上调试关键也是依赖一个配置文件的叫: launch.json,那我们看看怎么调试。 

7.1创建launch.json 文件

首先点击调试,创建launch.json文件:

然后选择C++(GDB/LLDB)。

这时在我们的文件目录下面就生成了一个launch.json文件

 然后点击添加配置:选择C/C++(gdb)启动

 这是生成的默认的配置信息,当然我们也许需要进行改造一下:

默认信息:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "输入程序名称,例如 ${workspaceFolder}/a.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "/path/to/gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        }



    ]
}

在这里我们需要改两个地方:

 如果你的mingw64也是和我一样的路径:D:\\mingw64\\bin\\gdb.exe

 修改完之后得到了新的配置信息:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}\\${workspaceRootFolderName}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "D:\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        }



    ]
}

7.2开始调试

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

调试的快捷键和VS系列的IDE是一样的,如:
F9- 打断点/取消断点
F5-启动调试
F11-逐语句调试
F10-逐过程调试
启动调试后,也是可以使用监视窗口查看变量等程序执行过程中的信息。 

 关于VScode如何搭建C/C++开发环境的教程就分享到这里,喜欢的老铁可以点赞+关注,感谢各位老铁支持!!

 
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VScode搭建C/C++开发环境 的相关文章

  • 框式路由器MPU、SFU、LPU、SRU科普

    MPU xff08 Main Processing Unit xff09 主控单元SFU xff08 Switch Fabric Unite xff09 交换网板LPU xff08 Line Processing Unit xff09 线路
  • 在STM32下完成基于FreeRTOS的多任务程序

    目录 一 任务要求二 FreeRTOS移植1 简单介绍2 应用实例 一 任务要求 在STM32下完成一个基于FreeRTOS的多任务程序 xff0c 执行3个周期性task task1 xff0c 每间隔500ms闪烁 xff08 变化 x
  • 学习HTML后总结

    目录 一 HTML简介二 软件 插件使用三 HTML的文档结构1 元素2 文本格式3 标题4 超链接5 图片 文件路径img6 表格7 列表List8 表单Form9 其他内容 一 HTML简介 HTML是超文本标记语言 xff08 Hyp
  • 学习CSS后总结

    目录 一 CSS简介二 CSS语法三 CSS的生效方式四 CSS实际使用1 颜色 尺寸 对齐2 盒子模型3 边框与边距4 定位5 溢出6 浮动7 透明度8 组合选择器9 伪类和伪元素 一 CSS简介 CSS是级联样式表 xff08 Casc
  • 《通信软件开发与应用》课程结业报告

    目录 一 作业内容二 完成过程三 问题及解决办法四 仍然存在的问题五 总结 一 作业内容 要求 xff1a 完成一个静态网站的制作 可使用你喜欢的任何CSS框架如BootStrap MDB tailwind等 xff0c 页面不少于5个 x
  • prometheus + grafana 监控Mysql、主机、Redis超简入门

    文章目录 grafana安装启动如何导入需要的dashboard prometheus安装集成grafanaExportermysqld exporter安装配置 node exporterredis exporter grafana 安装
  • 地址栏中输入IP地址提示指定的网络名不再可用的解决方法

    在日常工作中 xff0c 我们有的时候为了省去在网上邻居查找相关资料的麻烦 xff0c 一般都直接在地址栏中输入远程地址 xff0c 如192 168 1 100 F xff0c 可有的时候偏偏输入地址后却提示 指定的网络名不再可用 的问题
  • ubuntu18.04添加用户

    文章目录 前言一 创建用户目录二 修改用户权限 前言 笔记 在远程服务的时候经常遇到用户登入冲突的情况 xff0c 在此做了总结 一 创建用户目录 span class token comment 创建deepstream user spa
  • 详细介绍如何在ROS 中使用自定义 msg 消息

    首先我们对Ros中的msg 消息做以简单的回顾 xff1a msg 消息是 ROS topic 通讯时 xff0c 节点之间进行传递的内容 msg 消息描述的是业务之间传递数据 xff0c 也可以理解为业务之间数据的抽象化 常见 Msg 消
  • linux下的信号量操作示例

    include lt sys types h gt include lt sys ipc h gt include lt sys sem h gt include lt pthread h gt include lt errno h gt
  • 用户行为分析的指标及其意义

    什么是用户行为 xff1f 用户行为由最简单的五个元素构成 xff0c 我们可以简单地记为3W2H xff1a 时间 xff08 When xff09 地点 xff08 Where xff09 人物 xff08 Who xff09 交互 x
  • 二层漫游和三层漫游(转载)

    漫游域 根据STA是否在同一个子网内漫游 xff0c 可以将漫游分为二层漫游和三层漫游 不同子网之间的漫游是三层漫游 xff08 同一个VLAN pool内的漫游仍然属于二层漫游 xff09 网络中有时候会出现以下情况 xff1a 两个子网
  • HTML DOM 事件

    1 HTML DOM 事件 参考文档 xff1a https www runoob com jsref dom obj event html HTML DOM 事件允许Javascript在HTML文档元素中注册不同事件处理程序 事件通常与
  • 用户分类以及用户活跃度的衡量方法

    一个APP最根本的便是用户 xff0c 那么当然用户也分许多种类 xff0c 比如活跃用户 留存用户 流失用户等等 xff0c 那么一般情况下又是怎么来分析活跃用户的呢 xff1f 首先 xff0c 我们来看一下用户的具体分类 不同类型的用
  • 什么是用户标签?其实很好理解

    用户画像与用户标签 亚马逊的CEO Jeff Bezos曾说过他的梦想 xff0c 如果我有一百万的用户 xff0c 我就会做一百万个不同的网站 xff01 xff0c 做这个的基础是先对用户打标签 什么是用户画像呢 xff1f 就是根据某
  • 用户标签体系的意义及设计方法

    我们这次重点谈一下用户标签 对于市场层面 xff0c 用户标签能帮助我们什么 xff1f 1 完善数据仓 之前我们讲过 xff0c 企业或市场要有自己的数据仓来进行线索的存储与培育 xff0c 用户标签就是存在于此 xff0c 我们希望用户
  • 如何设计数据埋点方案?知道这2步就行了

    数据埋点是什么 xff1f 数据埋点是数据产品经理 数据运营以及数据分析师 xff0c 基于业务需求 xff08 例如 xff1a CPC点击付费广告中统计每一个广告位的点击次数 xff09 xff0c 产品需求 xff08 例如 xff1
  • 什么是UTM参数?这些你知道吗

    现在移动互联网发展比较迅速 xff0c 而且现在很多人都在做公众号 xff0c 公众号也要有自己的特色 xff0c 这样才能给自己的产品带来利益 现在也有很多的人关注APP运营 xff0c APP运营工作中的每一步都会讲求ROI xff08
  • 用户触达方式及用户触达渠道选择

    任何用户运营过程总离不开用户触达渠道的连接 可以说 xff0c 触达渠道的组合选择 xff0c 是与你最终运营效果直接挂钩的 xff0c 用户触达方式的选择直接影响了你运营的结果 如何做精准的用户触达 如何选择不同的用户触达方式 如何最大限
  • 用户行为分析之渠道分析、转化分析、留存分析

    数据分析脱离不了业务 xff0c 不同的业务所关注的数据不同 xff0c 比如互联网 快消等 xff0c 行业不同 xff0c 关注的数据点也不同 在互联网行业普遍产品的数据分析中 xff0c 我认为用户行为分析最重要的三个点是渠道分析 转

随机推荐

  • 通过用户分级实现精细化运营

    10年前 xff0c pc互联网时代 xff0c 当你浏览百度的网页 xff0c 你会普遍看到各种插件推广 弹窗广告等等 xff0c 这些弹窗就好似牛皮癣一样 xff0c 想关掉都不行 用户体验极其不好 xff0c 这是一个 卖方 占绝对优
  • 如何进行流失用户召回?做到这三步!

    如果按照每天渠道投放获客1000名 xff0c 次日留存率40 来算 xff0c 每天会有60 的用户 xff0c 第二天就再也不打开我们的APP xff0c 最终成为了流失用户 平均每日损失几百到数万元不等 虽然相比动辄几百万到几千万的融
  • Spring使用到的设计模式

    Spring涉及到的设计模式 简单工厂模式工厂模式单例模式适配器装饰器模式 Decortor代理模式观察者模式策略模式模板模式 简单工厂模式 一个工厂类根据传入的参数 xff0c 动态决定创建哪一个类 public abstract cla
  • 路由协议的优先级

    对于相同的目的地 xff0c 不同的路由协议 xff08 包括静态路由 xff09 可能会发现不同的路由 xff0c 但这些路由并不都是最优的 事实上 xff0c 在某一时刻 xff0c 到某一目的地的当前路由仅能由唯一的路由协议来决定 为
  • 自己动手写操作系统 将引导程序成功写入优盘启动电脑

    原文 xff1a http freesoftman iteye com blog 629598 输入命令 xff1a nasm boot asm o boot bin 一会儿就生成了一个镜像文件boot bin 该文件就是我所谓的操作系统了
  • 关于C语言等高级语言能不能直接控制硬件的问题

    关于C语言等高级语言能不能直接控制硬件的问题 xff0c 我认为C语言等高级语言不能直接控制硬件 这里谈论的问题本质是 xff0c C语言等高级语言能不能直接对硬件进行编程 我认为 xff0c 不能 众所周知 xff0c 计算机之初的程序员
  • scanf函数输入字符 %c之前要有空格分析

    问题描述如下 xff1a test c int main void int n 61 0 char c while 1 scanf 34 c 34 amp c printf 34 c d n 34 c 43 43 i return 0 这段
  • Linux0.11内核 进程睡眠和唤醒

    当进程等待资源或者事件时 xff0c 就进入睡眠状态 有两种睡眠态 xff0c 不可中断睡眠态 xff08 TASK UNINTERRUPTIBLE xff09 和可中断睡眠态 xff08 TASK INTERRUPTIBLE xff09
  • ubuntu linux 触控板失灵的解决方案

    这几天研究内核的模块机制 xff0c 接触到了一些关于模块的操作命令 xff0c 比如lsmod命令可以列出内核中已经安装的模块 xff0c insmod命令可以安装一个指定的模块 xff0c rmmod可以删除一个指定的模块 也是处于好奇
  • Linux 安装远程桌面并设置添加分辨率

    本来想用本地的kali linux来远程登陆centos的服务器 xff0c 在远程服务器安装VM xff0c 再VM里安装Windows虚拟机 xff0c 用作工作娱乐需要 xff0c 尼玛八颗八核至强CPU xff0c 128G内存 x
  • 将数据库文件导入mysql并输出为txt文件

    大致上MySQL数据库备份可以采用两种方式 xff1a 一种就是直接导出sql语句或者易于导入的其他格式的sql存储文件 xff0c 使用sql语句或者一些可视化客户端导出 xff0c 这种方法非常简单 xff0c 无需赘述 xff1b 另
  • golang gorilla/mux设置静态目录

    发现网上都是类似下面的代码 96 96 96 s 61 34 Users golang golang 34 http Handle 34 static 34 http StripPrefix 34 static 34 http FileSe
  • ios系统removeCachedResponseForRequest无效的替代方案

    相信你能找到我这篇博客 xff0c 肯定是对URLCache缓存有了深刻的理解 xff0c 并且被ios系统api removeCachedResponse ForRequest使用起来并不能删除指定的缓存所困惑 其实也可以自己想办法来模拟
  • DHCPv6报文介绍

    摘自HUAWEI官网 DHCPv6报文格式如图11 2所示 图11 2 DHCPv6的报文格式 表11 1 DHCPv6报文中各个字段的含义 字段 长度 含义 msg type 1字节 表示报文的类型 xff0c 取值为1 xff5e 13
  • vnc服务器的搭建

    vnc服务的概述 xff1a VNC Virtual Network Computing 虚拟网络计算机的缩写 xff0c 主要是完成图形界面的远程控制使用 一个vnc系统是由客户端 服务器端和一个协议组成 服务器是分享其屏幕 xff0c
  • openwrt配置wifi桥接上级AP,再作为ap路由(可实现ip透传,例如远距离图像传输)

    第一步 上级ap配置为 接入点AP xff08 WDS xff09 xff0c 例如无人机的飞机端作为wds ap a xff0c 无线概况里点击修改 b xff0c ESSID改为你想要的名字 xff0c 要选择固定信道 xff08 非常
  • 菜鸟学Linux命令:ssh命令

    转载自品略图书馆 http www pinlue com article 2020 04 1003 1210139769049 html 1 查看SSH客户端版本 有的时候需要确认一下SSH客户端及其相应的版本号 使用ssh V命令可以得到
  • STM32串口发送数据

    串口通信经常作为开发调试的工具 xff0c 所以先介绍下串口通信 串口通讯 Serial Communication 是一种设备间非常常用的串行通讯方式 xff0c 因为它简单便捷 xff0c 大部分电子设备都支持该通讯方式 xff0c 电
  • npm ERR! code EINTEGRITY 解决方案

    报错信息 xff1a Error sha1 HsihLT8VutOkAReGpzpIZJY2twQ 61 integrity checksum failed when using sha1 wanted sha1 HsihLT8VutOkA
  • VScode搭建C/C++开发环境

    目录 1 VScode是什么 xff1f 2 VScode的下载和安装 2 1下载和安装 下载 xff1a 安装 xff1a 2 2环境的介绍 环境介绍 xff1a 安装中文版插件 xff1a 3 VScode配置C C 43 43 开发环