首页 > 其他分享 >如何使用VS Code运行C语言

如何使用VS Code运行C语言

时间:2024-07-08 16:22:25浏览次数:18  
标签:bin gcc exe launch vscode VS C语言 json Code

首先需要在vscode中安装好C/C++扩展插件

然后是配置gcc环境(MinGW-w64文件配置)

1.我用的是离线下载方式:https://sourceforge.net/projects/mingw-w64/files/

下拉后按需下载

正常的Win电脑下载“x86_64-posix-sjij”就可以了

下载压缩包后解压,把解压的文件夹放到D盘某个位置,

打开里面的bin文件夹,复制路径:D:\xxx\mingw64\bin

到环境变量中添加系统变量,在系统变量里双击Path,新建一个变量,粘贴bin的地址

使用cmd命令输入gcc -v查看是否成功安装了gcc环境,有版本号输出即为成功

在vscode中新建一个helloworld.c文件,点击上方的运行--->启动调试,选择环境要选C++(GDB/LLDB)

再选择gcc.exe - 生成和测试活动文件,这个时候会出现launch.json文件,

然后复制以下代码:

将launch.json文件的代码删掉,用下面代码片段直接粘贴复制,注意"miDebuggerPath"部分是你自己电脑安装的bin文件夹的目

录,必须用window的双斜杠表示路径:

{
    "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": "D:\\xxx\\mingw64\\bin\\gdb.exe", // miDebugger的路径,注意这里要与自己电脑安装的MinGw的路径对应  
            "preLaunchTask": "gcc", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc  
            "setupCommands": [  
                {   
                    "description": "Enable pretty-printing for gdb",  
                    "text": "-enable-pretty-printing",  
                    "ignoreFailures": true  
                }  
            ]  
        }  
    ]  
}

然后再回到HelloWorld.c文件,再按下F5,会出现报错,说是找不到任务gcc

点击配置任务按钮,选择:使用模板创建tasks.json文件

再选择第一个:MSBuild执行生成目标

再打开的task.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
        }
    }
}

launch.json、tasks.json会在.vscode文件夹下,.vscode目录就是存放当前工作区相关配置文件的目录

最后重启vscode,点击上方的运行--->启动调试,成功编译,启动调试会编译检查错误

编译完成后会生成helloworld.exe可执行文件,在cmd终端.\helloworld.exe可执行

要执行当前目录的程序windows下直接hello-world,可以省略其他的,也可以执行

Windows下是.\ Linux下是./

也可在c文件中直接右键Run Code直接编译和执行一步到位,在输出窗口可直接看到结果

标签:bin,gcc,exe,launch,vscode,VS,C语言,json,Code
From: https://www.cnblogs.com/xishiyuyuan/p/18290131

相关文章

  • 编写代码检查规则的神器,解读CodeNavi语法结构
    本文分享自华为云社区《CodeNavi规则的语法结构》,作者:Uncle_Tom。1.代码和检查规则1.1.代码的构成程序是由空格分隔的字符串组成的序列。在程序分析中,这一个个的字符串被称为"token",是源代码中的最小语法单位,是构成编程语言语法的基本元素。Token可以分为多种类型,常见的有......
  • CodeForces CF1980C Sofia and the Lost Operations 题解 但是最后TLE 仅供思路参考
    CodeForcesCF1980CSofiaandtheLostOperations题解嗨嗨,又来了啊,蒟蒻再来一篇题解SofiaandtheLostOperations题面翻译索菲亚有一个包含$n$个整数的数组$a[1],a[2],…,a[n]$。有一天她对这个数组感到厌倦,于是决定顺序地对其应用$m$个修改操作。每个修改操作由一......
  • C语言 指针和数组——指针数组的应用:命令行参数
    目录命令行参数演示命令行参数与main函数形参间的关系命令行参数什么是命令行参数(CommandLineArguments)?GUI界面之前,计算机的操作界面都是字符式的命令行界面(DOS、UNIX、Linux)例如,在DOS下拷贝文件用copyfile1.cfile2.c不......
  • 开启VSCode的大门
    【教程】在macOS上用VSCode写C++代码5开启VSCode的大门(上)【教程】在macOS上用VSCode写C++代码5开启VSCode的大门(下)用终端写代码写代码在终端上使用命令创建.cpp文件(是文本文件),用vim打开编辑写代码,保存退出接下来是把代码文件编译成二进制可执行文件g++编译如何编......
  • docker-compose vs docker-stack
    docker-composevsdocker-stack都是docker两个容器编排工具,docker-compose是属于第三方容器编排工具需要单独安装,docker-stack是docker内置容器编排工具。docker-compose一般配合K8S使用,目前要容器管理方面K8S有着比较明显的优势,所以docker-compose目前比较流行。docker-stac......
  • C语言之考勤模拟系统平台(千行代码)
    考勤模拟系统平台目录第一章软件需求分析...1第二章系统结构设计...32.1系统架构...32.2系统组件...32.3系统流程...3第三章数据结构设计...4第四章模块划分及各模块功能介绍...64.1用户模块(UserModule)...64.2组模块(GroupModule)...64.3打卡模块(Cloc......
  • Codeforces Round #956 (Div. 2) C. Have Your Cake and Eat It Too
    CodeforcesRound#956(Div.2)C.HaveYourCakeandEatItToo题目大意:有长度为nnn的数组a......
  • C语言的数据类型和变量
    在学习C语言之前呢,想问友友们两个问题。为什么我们要学习编程?为什么要写代码?今天上课时,老师和我们说学习编程和代码是为了解决未来生活中的问题,写出的代码是为了能够描述现实世界。欧克,接下来将和友友们一起学习C语言相关知识。希望对友友们能够有所帮助!!!C语言中的数据类型和......
  • Codeforces Round #956 (Div. 2) and ByteRace 2024
    CF1983A.ArrayDivisibility很快发现输出\(\mathbf{1\simn}\)符合题意。B.CornerTwist结论题。关键的充要条件是\(a,b\)的每一行/列的和模\(\mathbf{3}\)后相等。证明的话,首先要想到\(\mathbf{2\times2}\)的操作是可以完成所有大小的子矩阵操作的,手模一下可以发......
  • Codeforces Round 956 (Div. 2)
    A.ArrayDivisibilityArrayDivisibility直接输出1到n#include<bits/stdc++.h>usingnamespacestd;voidsolve(){intn;cin>>n;for(inti=1;i<=n;i++){cout<<i<<(i==n?'\n':'......