VScode配置C环境

news2025/2/2 20:58:16

一、下载vscode

https://code.visualstudio.com/ 

 安装完成

tips:如果不喜欢看英文,可以给VSCode进行汉化,需要安装插件Chinese,安装之后会显示让你重启VScode 

 二、安装C/C++插件和Code Runner插件

三、下载minGw

MinGW全称Minimalist GNU For Windows,是个精简的Windows平台C/C++、ADA及Fortran编译器,相比Cygwin而言,体积要小很多,使用较为方便。MinGW提供了一套完整的开源编译工具集,以适合Windows平台应用开发,且不依赖任何第三方C运行时库。

MinGW包括:

  • 一套集成编译器,包括C、C++、ADA语言和Fortran语言编译器
  • 用于生成Windows二进制文件的GNU工具的(编译器、链接器和档案管理器)
  • 用于Windows平台安装和部署MinGW和MSYS的命令行安装器(mingw-get)
  • 用于命令行安装器的GUI打包器(mingw-get-inst)

下载地址

MinGW官方网址:http://www.mingw.org/

下载地址:MinGW - Minimalist GNU for Windows download | SourceForge.net

下载后只是个安装器,需要在线下载真正的安装内容。具体步骤如下:

1、选择安装版本(Repository Catalogues)

有两个选择,一个是当前打包版本,另一个是下载最新版本。只要你的安装器是从官方下载的,选择前者即可,结果一般就是最新版本。

2、设置安装目录

默认安装到C:\MinGW

continue

安装中,完成安装后continue

3、选择安装组件

这个根据大家需要选择安装组件(C编译器、C++编译器、Fortran编译器、ObjC编译器、Ada编译器等),一般选择C/C++编译器即可,看各位用途确定,组件列表中还有MSYS小系统等可供选择。

左上角installation-》apply changes 

4、等待下载并安装完成

 

5、设置MinGW环境变量

Path里增加C:\MinGW\bin

6、查看GCC版本信息

win+r,输入cmd,回车,输入gcc -v查看编译器版本。如下图:

四、hello word!

正常情况下应该是有告警的,include

解决方法

首先要创建一个文件夹,是用来放自己编写的项目的,然后用vscode打开这个文件夹,然后再建立一个文件夹命名为.VScode,并在此文件夹中创建三个json文件 第一个:tasks.json

{
  
  "version": "2.0.0",
  "tasks": [{
      "label": "gcc",
      "type": "shell", // { shell | process }
      // 适用于 Windows 的配置:
      "windows": {
          "command": "gcc",
          "args": [
              "-g",
              "\"${file}\"",
              "-o",
              "\"${fileDirname}\\${fileBasenameNoExtension}.exe\""
              // 设置编译后的可执行文件的字符集为 GB2312:
              // "-fexec-charset", "GB2312"
              // 直接设置命令行字符集为 utf-8:
              // chcp 65001
          ]
      },
      // 定义此任务属于的执行组:
      "group": {
          "kind": "build", // { build | test }
          "isDefault": true // { true | false }
      },
      // 定义如何在用户界面中处理任务输出:
      "presentation": {
          // 控制是否显示运行此任务的面板。默认值为 "always":
          // - always:    总是在此任务执行时显示终端。
          // - never:     不要在此任务执行时显示终端。
          // - silent:    仅在任务没有关联问题匹配程序且在执行时发生错误时显示终端
          "reveal": "silent",
          // 控制面板是否获取焦点。默认值为 "false":
          "focus": false,
          // 控制是否将执行的命令显示到面板中。默认值为“true”:
          "echo": false,
          // 控制是否在任务间共享面板。同一个任务使用相同面板还是每次运行时新创建一个面板:
          // - shared:     终端被共享,其他任务运行的输出被添加到同一个终端。
          // - dedicated:  执行同一个任务,则使用同一个终端,执行不同任务,则使用不同终端。
          // - new:        任务的每次执行都使用一个新的终端。
          "panel": "dedicated"
      },
      // 使用问题匹配器处理任务输出:
      "problemMatcher": {
          // 代码内问题的所有者为 cpp 语言服务。
          "owner": "cpp",
          // 定义应如何解释问题面板中报告的文件名
          "fileLocation": [
              "relative",
              "${workspaceFolder}"
          ],
          // 在输出中匹配问题的实际模式。
          "pattern": {
              // The regular expression.
              "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
              // 第一个匹配组匹配文件的相对文件名:
              "file": 1,
              // 第二个匹配组匹配问题出现的行:
              "line": 2,
              // 第三个匹配组匹配问题出现的列:
              "column": 3,
              // 第四个匹配组匹配问题的严重性,如果忽略,所有问题都被捕获为错误:
              "severity": 4,
              // 第五个匹配组匹配消息:
              "message": 5
          }
      }
  }]
}

第二个:launch.json

{
  "version": "0.2.0",  
  "configurations": [  
      {  
          "name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示
          "type": "cppdbg",       // 配置类型,这里只能为cppdbg
          "request": "launch",    // 请求配置类型,可以为launch(启动)或attach(附加)  
          "program": "${workspaceFolder}/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径  
          "args": [],             // 程序调试时传递给程序的命令行参数,一般设为空即可  
          "stopAtEntry": false,   // 设为true时程序将暂停在程序入口处,一般设置为false  
          "cwd": "${workspaceFolder}", // 调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录  
          "environment": [],  
          "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台  
          "MIMode": "gdb",  
          "miDebuggerPath": "C:\\MinGW\\bin\\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应  
          "preLaunchTask": "gcc", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc  
          "setupCommands": [  
              {   
          "description": "Enable pretty-printing for gdb",  
                  "text": "-enable-pretty-printing",  
                  "ignoreFailures": true  
              }  
          ]  
      }  
  ]  
}

第三个:setting.json

{
  "files.associations": {
      "tidl_alg_int.h": "c",
      "limits": "c"
  }
}

重启vscode。

然后在.VScode的同一级文件夹创建一个C程序,如下图所示,如果运行成功,即代表C语言环境安装成功

生成exe文件

参考文献

https://sourceforge.net/projects/mingw/

http://www.codebaoku.com/it-c/it-c-219761.html

https://www.cnblogs.com/lidabo/p/6848305.html

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

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

相关文章

TrustZone之示例用例——加密文件系统

移动设备如智能手机包含大量个人数据。如果设备丢失或被盗,用户会关心这些数据的机密性。这就是为什么大多数最新的设备支持文件系统加密的原因。TrustZone 可以作为保护这些数据的解决方案的一部分。 存储在外部闪存中的数据是加密的。在启动时,设备对用…

2024 Move 开发者大会火热报名中!1 月 13 至 14 日上海见

2024 Move 开发者大会将于 1 月 13 日至 1 月 14 日在上海举办。本届 Move 开发者大会以 “Move 生态关键的一年” 为主题,由 MoveFuns 、OpenBuild 和 MoveBit 主办,Rooch、AptosGlobal、alcove、zkMove、云赛空间和 TinTinLand 协办,并得到…

SpringBoot找不到或无法加载主类

1,bug贴图 2,问题说明 之所以导致这个问题是因为新建项目的时候,项目目录是这样的com.lab.hei.springboot.dubbo.ProviderApplication 我觉得这个目录太长了,所以修改了目录,修改后cn.alisa.springboot.dubbo.Provider…

【第七在线】商品计划的未来:数字化技术与创新趋势展望

在服装行业,商品计划是一项至关重要的活动,涉及到市场分析、库存管理、生产计划和销售策略等多个方面。然而,随着科技的快速发展和消费者需求的变化,商品计划也在不断演变。本文将深入探讨数字化技术和创新趋势如何塑造了商品计划…

从零学算法5

5.给你一个字符串 s,找到 s 中最长的回文子串。 如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。 示例 1: 输入:s “babad” 输出:“bab” 解释:“aba” 同样是符合题意的答案。 示例 2&…

Drupal 远程代码执行 CVE-2019-6340 已亲自复现

Drupal 远程代码执行 CVE-2019-6340 已亲自复现 漏洞名称漏洞描述影响版本 漏洞复现环境搭建 修复建议总结 漏洞名称 漏洞描述 Drupal是一个开源且以PHP语言写成的内容管理框架(CMF) 研究人员发现Drupal存在安全漏洞(CVE-2019-6340),当攻击者以PATCH或POST方式传送…

【数据结构】什么是树?

🦄个人主页:修修修也 🎏所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 📌树的定义 树(Tree)是n(n≥0)个结点的有限集.n0时称为空树. 在任意一颗非空树中: 有且仅有一个特定的称为根(Root)的结点;当n>1时,其余结点可分为m(m>0)个互…

flutter开发实战-设置bottomNavigationBar中间按钮悬浮效果

flutter开发实战-设置bottomNavigationBar中间按钮悬浮的效果 在使用tabbar时候,可以使用bottomNavigationBar来设置中间凸起的按钮,如下 一、效果图 中间按钮凸起的效果图如下 二、实现代码 我们使用BottomAppBar 一个容器,通常与[Sscaf…

AcWing算法提高课-1.4.2股票买卖 IV

算法提高课整理 CSDN个人主页:更好的阅读体验 原题链接 题目描述 给定一个长度为 n n n 的数组,数组中的第 i i i 个数字表示一个给定股票在第 i i i 天的价格。 设计一个算法来计算你所能获取的最大利润,你最多可以完成 k k k 笔交易…

百度网盘资源下载慢解决方法

1、使用百度网盘客户端,设置使用空闲带宽下载 亲测,可以一定程度上解决下载慢的问题,但是对于有些文件下载还是很慢就不清楚为什么了。 2、使用IDM进行下载 (1)、第一步下载和安装IDM 搜索后,普通下载后安…

JMeter---JSON提取器

JMeter的JSON提取器是一个用于从JSON响应中提取数据的元件。它可以从JSON响应中提取特定字段的值,并将这些值用于后续的测试步骤。 使用JSON提取器的步骤如下: 添加一个HTTP请求,用于获取包含JSON响应的数据。 在HTTP请求之后添加一个JSON提…

【Amazon 实验①】使用 Amazon CloudFront加速Web内容分发

文章目录 实验架构图1. 准备实验环境2. 创建CloudFront分配、配置动、静态资源分发2.1 创建CloudFront分配,添加S3作为静态资源源站2.2 为CloudFront分配添加动态源站 在本实验——使用CloudFront进行全站加速中,将了解与学习Amazon CloudFront服务&…

【Amazon 实验③】验证源请求策略将特定的请求信息转发至源站

文章目录 1. 使用源请求策略1.1 什么是源请求策略1.2 源请求策略和缓存策略的关系 2. 实验:验证源请求策略将特定的请求信息转发至源站 接上一篇文章【Amazon 实验②】使用缓存策略及源请求策略,用于控制边缘缓存的行为及回源行为,本篇文章主…

《每天一分钟学习C语言·七》指针、字节对齐等

1、 对于二维数组如a[3][4]可以当做有三个元素的一维数组,每个元素包含四个小元素。 2、 printf(“%-5d”, i); //负号表示左对齐,5d表示空五个光标的位置 3、 栈:先进后出,堆:先进先出 4、 (1&#xff…

机器学习笔记(一)从波士顿房价预测开始,梯度下降

从波士顿房价开始 目标 其实这一章节比较简单,主要是概念,首先在波士顿房价这个问题中,我们假设了一组线性关系,也就是如图所示 我们假定结果房价和这些参数之间有线性关系,即: 然后我们假定这个函数的损失函数为…

罗德与施瓦茨FSV40-N手持式频谱分析仪

描述 R&S FSV是速度最快、功能最全面的信号和频谱分析仪,适用于从事RF系统开发、生产、安装和服务的注重性能、注重成本的用户。 频率范围高达3.6 GHz/7 GHz/13.6 GHz/30 GHz 40 MHz分析带宽 0.4 dB级测量不确定度,最高7 GHz 针对GSM/EDGE、WCDMA/…

面试高频的TCP知识点总结,比我想象得还要详细

下午好,我的网工朋友。 TCP 作为传输层的协议,了解它,拿下它,是一个网络工程师素养的体现,也是面试中经常被问到的知识点。 我们账号之前的文章里也写过不少关于TCP相关的文章,感兴趣的朋友们可以点击下方…

Tekton

一. 概念 Tekton 官网 Github Tekton 是一种用于构建 CI/CD 管道的云原生解决方案,它由提供构建块的 Tekton Pipelines,Tekton 作为 Kubernetes 集群上的扩展安装和运行,包含一组 Kubernetes 自定义资源,这些资源定义了您可以为…

Vue表格中鼠标移入移出input显示隐藏 ,有输入值不再隐藏

Vue表格中鼠标移入移出input显示隐藏 , 不再隐藏的效果 <el-tableref"table":data"tableDatas"borderstyle"width: 100%":span-method"arraySpanMethod"id"table"row-key"id"cell-mouse-enter"editCell&q…

Tarjan-vDCC,点双连通分量,点双连通分量缩点

前言 双连通分量是无向图中的一个概念&#xff0c;它是指无向图中的一个极大子图&#xff0c;根据限制条件可以分为边双连通分量和点双连通分量&#xff0c;欲了解双连通分量需先了解Tarjan算法&#xff0c;以及割点割边的概念及求解。本篇博客介绍点双连通分量的相关内容。 前…