【C语言】使用VSCode编译C语言程序

目录

  • 1. 安装MinGW环境
  • 2.添加C/C++扩展
  • 3. 新建工程文件夹
    • 3.1 建立test文件夹
    • 3.2 建立.vscode文件夹
    • 3.3 建立test.c文件
  • 4. 使用VSCode打开工程文件夹
  • 5. 编写JSON文件
    • 5.1 手动编写
      • 5.1.1 创建`tasks.json`文件。
      • 5.1.2 创建`launch.json`文件
      • 5.1.3.编写单个C语言程序
      • 5.1.4. 运行调试
    • 5.2 自动生成
      • 5.2.1 安装C/C++ Runner插件
      • 5.2.2 创建test1文件夹并创建`.C`文件
      • 5.2.3 运行编译

  这里简单记录一下使用VSCode编译C语言程序,目前初步使用VSCode进行简单编写,置于里面的json文件为什么要那样配置,后续再进行学习吧。

1. 安装MinGW环境

  这里参考文章安装即可。
参考文章:
https://blog.csdn.net/didi_ya/article/details/111240502

2.添加C/C++扩展

  下载安装好VSCode和MinGW64后,在左侧的活动栏中找到“扩展”按钮,或者直接按Ctrl+Shift+X打开扩展。
在这里插入图片描述

  然后输入C/C++,搜索找到下面的扩展,点击进去,点击安装。

在这里插入图片描述
在这里插入图片描述

  安装成功后如下。

在这里插入图片描述

3. 新建工程文件夹

  在电脑本地磁盘的位置新建需要编译的C语言程序的文件夹,这里建立的文件夹为test文件夹,在test文件夹中再建立一个.vscode文件夹,和一个test.c文件。

3.1 建立test文件夹

  test文件夹用来存放.vscode文件夹和需要编译的.c文件。

在这里插入图片描述

3.2 建立.vscode文件夹

  如果想使用插件自动生成,就不需要创建这个文件夹了,在test文件夹下建立.vscode文件夹,用于存放后面需要手动编写的json文件。

在这里插入图片描述

3.3 建立test.c文件

  在test文件夹下建立test.c文件。
在这里插入图片描述

4. 使用VSCode打开工程文件夹

  这里建立的工程文件夹为test文件夹,直接将test文件夹拖拽至VSCode图标处打开,或者在VSCode中的文件→打开文件夹,这个方法选中test文件夹进行打开。
在这里插入图片描述
  打开后如下图所示。
在这里插入图片描述

5. 编写JSON文件

  JSON,即JavaScript Object Notation,是一种轻量级的数据交换格式,在VS Code中常被用作存储配置信息,这里编写JSON文件有两种方式:

  1. 手动编写。
  2. 自动生成。

5.1 手动编写

  要在VS Code上运行调试C语言程序,就需要创建两个json文件:
launch.json
task.json
  在使用“运行和调试”功能的时候,task.json文件负责定义编译任务,launch.json文件负责配置调试器。前面已经创建过.vscode文件夹了,因此在VS Code中对.vscode文件夹单击鼠标右键,然后点击新建文件,来创建json文件,这里防止自动生成.vscode文件夹,只安装了一个C语言的插件。

插件环境:C/C++

在这里插入图片描述

5.1.1 创建tasks.json文件。

  点击新建文件后,输入tasks.json后按下回车,右侧就会出现编辑json文件的窗口。

在这里插入图片描述
  输入以下代码。

{"tasks": [{"type": "cppbuild","label": "C/C++: gcc.exe 生成活动文件","command": "gcc.exe", "args": ["-fdiagnostics-color=always","-std=gnu99","-fpack-struct","-fshort-enums","-g","${fileDirname}\\*.c","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "调试器生成的任务。"}],"version": "2.0.0"
}

5.1.2 创建launch.json文件

  同样在.vscode文件夹单击鼠标右键,新建launch.json文件,然后输入以下代码。

{"version": "0.2.0","configurations": [{"name": "C/C++: gcc.exe 生成和调试活动文件","type": "cppdbg","request": "launch","program": "${fileDirname}\\${fileBasenameNoExtension}.exe","args": [],"stopAtEntry": false,"cwd": "${fileDirname}","environment": [],"externalConsole": false,"MIMode": "gdb","miDebuggerPath": "gdb.exe","setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": true},{"description": "将反汇编风格设置为 Intel","text": "-gdb-set disassembly-flavor intel","ignoreFailures": true}],"preLaunchTask": "C/C++: gcc.exe 生成活动文件"}]
}

5.1.3.编写单个C语言程序

  两个json文件都创建好了之后,就随便写一个C语言程序,这里双击test.c文件,进行编辑,代码如下。

#include<stdio.h>int main()
{printf("你好!VSCode!");return 0;
}

5.1.4. 运行调试

  注意在运行调试的时候,需要在资源管理器中选择test.c,如果选择了.json文件,然后再编译运行就会报错。在左侧找到运行调试选项,点击后点击绿色的三角形进行运行调试,或者快捷键F5直接运行调试。
在这里插入图片描述
在这里插入图片描述
  运行后会出现调试控制台,我们点击旁边的终端就可以看到运行的结果了。
在这里插入图片描述

  结果如下,说明可以在VSCode上进行运行调试。
在这里插入图片描述

  最终会在工程文件夹路径下生成一个可执行文件,打开资源管理器就可以看到,这样就可以用C语言进行一些简单的工具开发了。
在这里插入图片描述

5.2 自动生成

  这里通过安装C/C++ Runner插件来自动生成json文件和一些文件夹。

5.2.1 安装C/C++ Runner插件

  搜索C/C++ Runner插件并安装。

在这里插入图片描述

5.2.2 创建test1文件夹并创建.C文件

  这里只需要创建一个test1文件夹,打开创建一个test1.c文件,然后直接将test文件夹拖拽到VS Code图标打开。
在这里插入图片描述
  拖拽到VS Code中后会直接生成.vscode文件夹,在该文件夹下自动生成了三个json文件。
在这里插入图片描述

5.2.3 运行编译

  点击扩展,点击安装的C/C++ Runner插件可以看到编译和运行的快捷键是ctrl+alt+bctrl+alt+r

在这里插入图片描述

  在test1.c文件中写入代码。

在这里插入图片描述

  选中test1.c,使用快捷键编译,发现生成了buildDebug文件夹,以及.exe文件。

在这里插入图片描述

  选中test1.c,使用快捷键运行,就可以在终端看到运行的结果了。在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

29个横幅广告及详细点评,帮您优化广告效果

在过去30年里&#xff0c;横幅广告是为数不多的在每个阶段都得以存活的网络元素之一&#xff0c;至今仍是许多企业展示广告战略的支柱。但随着互联网内容的不断增加&#xff0c;吸引潜在客户的注意力变得越来越困难。这时候&#xff0c;一些智能化的解决方案&#xff0c;例如光…

多目标遗传算法(NSGAⅢ)的原理和matlab实现

参考文献&#xff1a; [1] Deb K , Jain H .An Evolutionary Many-Objective Optimization Algorithm Using Reference-Point-Based Nondominated Sorting Approach, Part I: Solving Problems With Box Constraints[J].IEEE Transactions on Evolutionary Computation, 2014,…

最高1000万 各地模型和算法备案补贴政策一览

最高1000万 各地模型和算法备案补贴政策一览 2024年7月31日&#xff0c;成都市的人工智能产业再度引起关注。通过国家大模型备案的三家企业——海艺互娱、晓多科技和明途科技&#xff0c;获得了成都市经信局市新经济委的百万奖励。这一奖励源自成都发布的《成都市进一步促进人工…

【算法思想·二叉树】后续篇

本文参考labuladong算法笔记[二叉树心法&#xff08;后序篇 | labuladong 的算法笔记] 前序位置的代码只能从函数参数中获取父节点传递来的数据&#xff0c;而后序位置的代码不仅可以获取参数数据&#xff0c;还可以获取到子树通过函数返回值传递回来的数据。 那么换句话说&am…

加密货币市场持有与价格波动:CFI调查揭示的趋势与未来展望

自2022年1月以来&#xff0c;消费者金融协会&#xff08;CFI&#xff09;通过六项不同的调查收集了有关加密货币所有权的数据。这些调查旨在了解加密货币的当前持有量和未来购买兴趣&#xff0c;并将这些数据与加密货币市场表现进行对比。结果显示&#xff0c;市场价格与持有量…

【MySQL】MySQL操作介绍

MySQL操作 认识 MySQL什么是 MySQL关系型数据库的组成结构"客户端-服务器"结构 数据库的基本操作创建数据库查看数据库删除数据库使用数据库 数据类型整型浮点类型字符串类型日期类型总结 表的操作创建表查看表查看表的信息删除表 数据的基础操作插入数据指定列插入全…

计算机网络:http协议

计算机网络&#xff1a;http协议 一、本文内容与前置知识点1. 本文内容2. 前置知识点 二、HTTP协议工作简介1. 特点2. 传输时间分析3. http报文结构 三、HTTP版本迭代1. HTTP1.0和HTTP1.1主要区别2. HTTP1.1和HTTP2主要区别3. HTTPS与HTTP的主要区别 四、参考文献 一、本文内容…

设计模式-行为型模式-迭代器模式

1.迭代器模式的定义 迭代器模式提供一种对容器对象中的各个元素进行访问的方法&#xff0c;而不需要暴露该对象的内部细节&#xff1b; 在软件系统中&#xff0c;容器对象有两个职责&#xff1a;一是存储数据&#xff0c;二是遍历数据&#xff1b;从依赖性上看&#xff0c;前者…

高效诊断Linux性能问题

从uptime命令开始&#xff1b;这里的关键指标是平均负载&#xff0c;它显示了过去 1分钟&#xff0c;5分钟和15分钟内正在运行或等待资源的进程平均数量&#xff1b;如果这些数字持续高于CPU内核数&#xff0c;则可能表明进程正在争夺资源&#xff0c;提示我们使用其他工具深入…

多语言ASO – 本地化的10个技巧

ASO优化是一个复杂的领域&#xff0c;即使你只关注讲英语的用户。如果您想面向国际受众并在全球范围内发展您的应用程序业务&#xff0c;您必须在App Store和Google Play Store上本地化应用程序的产品页面。不过&#xff0c;应用程序商店本地化的过程也有很多陷阱。 应用商店本…

100个视频如何转换成1个二维码

使用场景描述&#xff1a;有50-100个视频&#xff0c;要实现扫一个二维码&#xff0c;就可以完整观看这50-100个视频的内容&#xff0c;这种情况下&#xff0c;可以使用列表专辑二维码功能来轻松实现。 使用步骤 STEP1 注册帐号 使用视频专辑列表二维码&#xff0c;您需要注册…

TPM管理培训为何难以落地?原因解析与解决之道

近年来&#xff0c;TPM管理被视为提升设备效率、减少故障率、降低生产成本的关键。然而&#xff0c;尽管TPM的理念被广泛接受&#xff0c;其在实践中的落地却常常面临各种挑战。本文&#xff0c;深圳天行健企业管理咨询公司将深入解析TPM管理培训难以落地的根本原因&#xff0c…

Linux驱动(五):Linux2.6驱动编写之设备树

目录 前言一、设备树是个啥&#xff1f;二、设备树编写语法规则1.文件类型2.设备树源文件&#xff08;DTS&#xff09;结构3.设备树源文件&#xff08;DTS&#xff09;解析 三、设备树API函数1.在内核中获取设备树节点&#xff08;三种&#xff09;2.获取设备树节点的属性 四、…

2000-2022年中国河流水系变化矢量数据集(矢量/30m)含:河道水面宽度、水面中心线、水系网络节点

2000-2022年中国河流水系变化矢量数据集 数据介绍 河网水系是是受气候变化和人类活动影响最显著的水生态环境之一。联合国可持续发展目标6&#xff08;SDG 6&#xff09;亚目标SDG 6.6.1是指与水有关的生态系统范围随时间的变化。本数据产品面向SDG 6.6.1&#xff0c;利用卫星…

盘点:当养生茶遇上互联网,都有哪些打法?

健康行业电商大战早已拉开序幕&#xff0c;作为健康行业的一个大类——养生茶还能缺席么&#xff1f;三好夫人、同仁堂、东韵、九芝堂、余庆堂等等各路豪杰齐聚养生茶电商&#xff0c;看他们如何各显神通吧&#xff01; 三好夫人——一生只送一人 三好夫人以爱之名创立&#x…

网络编程入门-实现服务器与客户端通讯

概念学习 TCP概念&#xff1a; TCP&#xff08;Transmission Control Protocol&#xff09;协议指的是传输控制协议&#xff0c;是一个面向连接的传输协议&#xff0c;他是一个能提供高可靠性的通信协议&#xff0c;所谓高可靠性指的是数据无丢失、数据无误、数据无失序、数据…

Keil导入包出错

1.菜单栏找不到GD系列&#xff1f; 随便新建一个工程&#xff0c;将project用记事本打开后如图2所示。再将别人给的代码工程用记事本打开&#xff0c;发现别人给的工程少了这两行&#xff0c;所以复制粘贴到别人给的工程记事本中&#xff0c;保存刷新后重新打开&#xff0c;就…

剑指offer JZ23 链表中环的入口结点

问题描述&#xff1a; 给定一个长度为n的链表&#xff0c;首先判断其是否有环&#xff0c;然后找到环的入口。 要求&#xff1a;空间复杂度 O(1)&#xff0c;时间复杂度 O(n)。 思路&#xff1a; 1. 投机一点的做法 从头遍历链表&#xff0c;如果有环&#xff0c;那么有些节…

解读:以RTC为基,AI为脑的“超拟人”AI实时互动解决方案

我们打造了一款满足想象与应用的智能体——AI实时互动。 谈谈AI智能体 当AI变得足够聪明时&#xff0c;用户与AI的交互将变得真实自然。于是&#xff0c;构建高拟真AI与用户的实时交互&#xff0c;已经成为企业提升数智化生产力的新思路。 在这个交互过程中&#xff0c;存在一…

@开发者极客们,网易2024低代码大赛来啦

极客们&#xff0c;网易云信拍了拍你 9月6日起&#xff0c;2024网易低代码大赛正式开启啦&#xff01; 低代码大赛是由网易主办的权威赛事&#xff0c;鼓励开发者们用低代码开发的方式快速搭建应用&#xff0c;并最终以作品决出优胜。 从2022年11月起&#xff0c;网易低代码大赛…