vscode 搭建C语言开发环境_vscode搭建c语言开发环境-程序员宅基地

技术标签: c++  c语言  vscode  

MinGW-W64 GCC以及VSCODE的三个文件下载链接(由于网络问题可能会导致官网下载失败,可以使用该资源文件下载)

1. 安装C编译器(MinGW-W64 GCC)

C编译器(MinGW-W64 GCC)的下载地址为:https://sourceforge.net/projects/mingw-w64/
点击下图中的Download即可下载:
在这里插入图片描述
下载完成后将压缩包解压到C盘,如下图所示:
在这里插入图片描述
在环境变量PATH中新增两个变量:“C:\mingw64\bin” /“C:\mingw64\include“
1、右键此电脑,点击属性
2、点击高级属性
在这里插入图片描述
3、点击高级,再点击环境变量
在这里插入图片描述
4、点击Path,再编辑
在这里插入图片描述
5、加入环境变量(解压的位置)
在这里插入图片描述
6、验证是否安装完成,快捷键“win+r”输入“cmd”,打开控制命令行
在这里插入图片描述
7、输入“gcc -v -E -x c++ -”,显示如下图所示即安装成功
在这里插入图片描述

2. 配置vscode C语言开发环境

2. 1. 安装vscode

点击下载:https://code.visualstudio.com/一路next即可

2. 2. vscode 插件下载

安装Code Runner以及c/c++
在这里插入图片描述
在这里插入图片描述

右键设置
在这里插入图片描述
勾选一下4个选项
在这里插入图片描述

2.3. 配置vscode文件

桌面上新建一个文件夹,拖入vscode打开(或者在vscode中打开此文件夹)
在这里插入图片描述
在打开的文件夹中新建一个名为“.vscode”的子文件夹
在这里插入图片描述
选中“.vscode”子文件夹,新增三个配置文件”c_cpp_propertise.json“、”launch.json“、”tasks.json“
在这里插入图片描述
c_cpp_propertise.json内容复制以下内容(注意:mingw64的位置需根据自己解压的位置

{
    
    "configurations": [
        {
    
            "name": "Win32",
            "includePath": [
                "${workspaceRoot}",
                "C:/mingw64/include/**",
                "C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++",
                "C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32",
                "C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/backward",
                "C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include",
                "C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed",
                "C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/include"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "__GNUC__=6",
                "__cdecl=__attribute__((__cdecl__))"
            ],
            "intelliSenseMode": "msvc-x64",
            "browse": {
    
                "limitSymbolsToIncludedHeaders": true,
                "databaseFilename": "",
                "path": [
                    "${workspaceRoot}",
                    "C:/mingw64/include/**",
                    "C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++",
                    "C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32",
                    "C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/backward",
                    "C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include",
                    "C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed",
                    "C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/include"
                ]
            }
        }
    ],
    "version": 4
}

launch.json内容复制以下内容(注意:mingw64的位置需根据自己解压的位置

{
    
    "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}", // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录workspaceRoot已被弃用,现改为workspaceFolder            
            "environment": [],
            "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台           
            "MIMode": "gdb",
            "miDebuggerPath": "C:/mingw64/bin/gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应  
            "preLaunchTask": "gcc", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc      
            "setupCommands": [
                {
    
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": false
                }
            ]
        }
    ]
}

tasks.json内容复制以下内容

{
    
    "version": "2.0.0",
    "command": "gcc", // 注意对应  
    "args": [
        "-g",
        "${file}",
        "-o",
        "${fileBasenameNoExtension}.exe"
    ], // 编译命令参数
    "problemMatcher": {
    
        "owner": "cpp",
        "fileLocation": [
            "relative",
            "${workspaceFolder}"
        ],
        "pattern": {
    
            "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
            "file": 1,
            "line": 2,
            "column": 3,
            "severity": 4,
            "message": 5
        }
    }
}

3. C文件编译运行

3.1. 新建一个test.c的文件

在这里插入图片描述
复制以下内容并保存:

#include <stdio.h>

int main(void){
    
    printf("hello world! I\' m VSCode\n");
    return 0;
}

3.2. 运行代码

右键.c文件RunCode,即可在终端中展示最后的运行结果
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43504224/article/details/124961900

智能推荐

vue监听scroll使用节流函数(throttle)或防抖函数(debounce)遇到的坑_vue中怎样对scroll事件进行监听并使用节流工具函数,最后在组件销毁时解绑该监听事-程序员宅基地

文章浏览阅读1.8w次,点赞2次,收藏12次。  在浏览器 DOM 事件里面,有一些事件会随着用户的操作不间断触发。比如:重新调整浏览器窗口大小(resize),浏览器页面滚动(scroll),鼠标移动(mousemove)、文字输入(keyup)、 射击游戏中(mousedown、keydown)。也就是说用户在触发这些浏览器操作的时候,如果脚本里面绑定了对应的事件处理方法,这个方法就不停的触发。   在项目中需要通过监听元素的scro..._vue中怎样对scroll事件进行监听并使用节流工具函数,最后在组件销毁时解绑该监听事

实现一个函数判断year是不是润年_编写一个函数判断year年份是否为闰年-程序员宅基地

文章浏览阅读309次。实现一个函数判断year是不是润年#include <stdio.h>void leap_year(int i)//创建函数{ if (i % 4 == 0 && i % 100 == !0 || i % 400 == 0) { printf("是闰年\n"); } else { printf("不是闰年\n"); }}int main()..._编写一个函数判断year年份是否为闰年

docker的挂载和数据卷_docker mount-程序员宅基地

文章浏览阅读2.3k次。我们还定义了两个 volumes,一个用于将本地的 /data/mysql 目录挂载到 MySQL 容器中的 /var/lib/mysql 目录上,另一个用于将当前目录(即 .)挂载到 Django 容器中的 /code 目录上。它们允许容器中的数据在容器停止和删除后仍然存在,并允许多个容器共享同一卷,使用数据卷可以使容器中的数据持久化,并且可以在多个容器之间共享相同的数据。MySQL 容器中的数据会被保存到本地的 /data/mysql 目录中,而 Django 容器中的代码会被保存到本地的当前目录中。_docker mount

Linux驱动开发03:Input子系统_linux btn_0-程序员宅基地

文章浏览阅读530次。介绍本章以”BTN_0”事件为例, 使用input子系统向内核注册一个”BTN_0”的输入事件,然后通过定时器定时触发来模拟按键按下的操作;在应用层中通过注册输入事件来接收驱动发出的事件。整个过程不涉及硬件,只是介绍Input子系统的框架。 Input子系统基于cdev提供接口,属于字符设备,所有使用input子系统构建的设备都使用主设备号13,同时输入子系统也支持自动创建设备文件,这些文件..._linux btn_0

简单的涂色问题解决_最近小民接到一个涂色任务:有排成一行的 n 个方格,用红(red)、粉(pink)、绿(g-程序员宅基地

文章浏览阅读2.1k次。题目内容: 有排成一行的n个方格,用红(Red)、粉(Pink)、绿(Green)三色涂每个格子,每格涂一色,要求任何 相邻的方格不能同色,且首尾两格也不同色.求全部的满足要求的涂法。 输入描述输入正整数n输出描述输出结果 输入样例5输出样例30_最近小民接到一个涂色任务:有排成一行的 n 个方格,用红(red)、粉(pink)、绿(g

getElementsByClassName的用法 和 js获取class-程序员宅基地

文章浏览阅读675次。因为IE浏览器不支持getElementsByClassName,所以你要自己写一个方法得到class但是火狐浏览器知道getElementsByClassName,可以直接的用<html><head> <title></title> <script type="text/javascript"> ..._getelementsbytagname 获取classname

随便推点

基于Android校园跳蚤市场交易系统的设计与实现_基于安卓的跳蚤市场论文-程序员宅基地

文章浏览阅读3.3w次,点赞76次,收藏458次。小跳蚤 大用途前言: 算一算时间又快到了一年一度的毕业设计了吧,我也差不多完成我自己的毕业设计一年了,在此推出我的毕业设计成果以供后来的学弟学妹参考。都说站在巨人肩膀上,更上一层楼,在枯燥的编程期间我也有参考CSND大力哥的文章。很多人 把毕业设计应付过去,但是学习终究是自己的,绝知此事要躬行。接下来跟着我学习和分析的思路看一下成果吧!目录第1章 引言.... 5..._基于安卓的跳蚤市场论文

一文带你快速了解 Java 线上问题快速诊断神器 Arthas_[root@localhost ~]# ./as.sh arthas script version:-程序员宅基地

文章浏览阅读685次,点赞4次,收藏14次。文章目录一、什么是 Arthas二、特性一览三、Arthas 能为你做什么?四、快速安装1、前提条件2、一键安装五、快速使用1、启动并连接进程六、使用示例1、dashboard(当前系统的实时数据面板)2、sysprop(查看或修改java属性)3、mbean(实时查看Mbean信息)4、thread(查看线程)5、thread -n(查看占CPU前几的线程栈信息)6、jad(反编译代码)7、sc(查看已经加载的类)8、sm(列出某个类加载的方法)9、trace(跟踪方法的消耗时间)10、stack (查看_[root@localhost ~]# ./as.sh arthas script version: 3.7.2 [info] java_home: /

opencv 入门笔记十 图片序列保存为视频_opencv将图片保存为视频-程序员宅基地

文章浏览阅读3.8k次。opencv 入门笔记十 图片序列保存为视频_opencv将图片保存为视频

目标检测中准确率评价指标_目标检测overlap-程序员宅基地

文章浏览阅读1.1w次。caffe中实现SSD准确率评价方法是TestDetection()函数。mAp指标值是每个类别的Average precision的平均值。本文分析DetectionEvaluateLayer中实现评价的过程及其评价指标。需要指出的是,一般的前向过程是不包含DetectionEvaluateLayer层的定义的,只有在训练的评价(TEST)过程中才会使用到该layer。具体使用该层时,需要在..._目标检测overlap

27《Go语言入门》单向通道(chan)_go单向chan-程序员宅基地

文章浏览阅读1.1k次。这是我纯手写的《Go语言入门》,手把手教你入门Go。源码+文章,看了你就会????!文章中所有的代码我都放到了github.com/GanZhiXiong/go_learning这个仓库中!看文章时,对照仓库中代码学习效果更佳哦!目录什么是单向通道声明单向通道time包中的单向通道关闭通道只读通道不能关闭给关闭通道发送数据将会触发panic从已关闭的通道接收数据时将不会发生阻塞测试题测试1支持????什么是单向通道单向通道就是只能用于写入或读取数据的通道。它是对通道的一种使用限制。如果ch_go单向chan

SpringMVC(一)_"在springmvc配置文件中,有如下配置: <bean class=\"org.springfr-程序员宅基地

文章浏览阅读278次。Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分Springmvc处理流程入门程序springMVC是表现层框架,需要搭建web工程开发1、导入jar包2、加入配置文件创建SpringMVC的核心配置文件SpringMVC本身就是Spring的子项目,对Spring兼容性很好,不需要做很多配置。这里只配置一个Contr..._"在springmvc配置文件中,有如下配置: