vscode编译运行C代码

本文目的:
    1、vscode编译C语言代码
    2、C语言的代码,分成多个目录:include、src


代码准备工作

1、新建目录
    vscode是不能直接新建工程的,需要先新建目录,存放代码
在这里插入图片描述
2、打开vscode,File --> Open Folder… --> 选择上面新建的test_vscode文件
    test_code就是之后的开发目录

3、新建 .c、.h 代码文件
    以新建main.c文件为例:File --> New File --> Ctrl+S保存 --> 修改文件名main.c保存。

注解:本文新建了3个文件,分别是main.c、math.c、math.h,目录结构见下(目录分层)。
在这里插入图片描述
math.h

#ifndef _MATH_H
#define _MATH_H

int add(int a,int b);   
int sub(int a,int b); 

#endif

math.h

#include "math.h"

int add(int a,int b)
{    
    return a+b; 
}

int sub(int a,int b)                                            
{                                                                 
    return a-b;                                                   
}    

main.c

#include "math.h"
#include <stdio.h>

int main(void)
{
    int a=20;
    int b=10;
    
    printf("add(%d,%d)=%d\n",a,b,add(a,b));
    printf("sub(%d,%d)=%d\n",a,b,sub(a,b));
}

launch.json

1、F5 --> C++(GDB/LLDB) -->Default Configuration --> 生成 .vscode/launch.json文件
2、 复制下面launch.json文件的内容,替换生成的默认文件
(1) “miDebuggerPath”: “C:\cygwin64\bin\gdb.exe”,//调试器路径,在Linux环境下需要注释掉这一行
(2) “program”: “ w o r k s p a c e R o o t / {workspaceRoot}/ workspaceRoot/{fileBasenameNoExtension}.exe”,//可执行文件的路径和文件名称
(3) “args”: [],//主函数调用时传入的参数 --> “args”: [“file1”, “file2”]
(4) “environment”: [],

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "2,0.0", //配置文件的版本,以前使用是0.2.0,新版本已经弃用,改用为2.0.0
    "configurations": [ //配置域
        {
            "preLaunchTask": "Build", //调试会话开始前执行的任务,一般为编译程序。与tasks.json的label相对应
            "name": "(gdb) Launch", //配置文件的名字,可以随便起
            "type": "cppdbg", //调试的类型,Vscode现在支持很多,我这里主要是C,所以只能是cppdbg
            "request": "launch",//配置文件的请求类型,有launch和attach两种,具体看官方文档
            "targetArchitecture": "x64", //硬件内核架构,为64bit,如图设置
            "program": "${workspaceRoot}/${fileBasenameNoExtension}.exe",//可执行文件的路径和文件名称
            "args": [],//主函数调用时传入的参数 --> "args": ["file1", "file2"]
            "stopAtEntry": false,//设为true时程序将暂停在程序入口处
            "cwd": "${workspaceFolder}",//调试时的工作目录
            "environment": [],
            "internalConsoleOptions": "openOnSessionStart",//
            "externalConsole": true,//调试时是否显示控制台窗口
            "MIMode": "gdb",//指定连接的调试器,可以省略不写
            "miDebuggerPath": "C:\\cygwin64\\bin\\gdb.exe",//调试器路径,在Linux环境下需要注释掉这一行
            "setupCommands": [ 
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
        }
    ]
}

task.json

1、再次点击F5,弹出下面弹窗,选择Configure Task
在这里插入图片描述
2、选择Create task.json file from template
在这里插入图片描述
3、选择 Others ,会在.vscode目录下,生成 tasks.json 文件
在这里插入图片描述
4、复制下面内容,粘贴到 task.json 文件中
(1) 头文件
在这里插入图片描述
(2) 源文件
在这里插入图片描述

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build", // 任务名称,与launch.json的preLaunchTask相对应
            
            "includePath": [
                "${fileDirname}/include/"    // --> 修改为.h文件路径
            ],
            
            "command": "gcc", // 要使用的编译器
            "args": [
                "-g", // 生成和调试有关的信息
                "${file}", //在哪个文件的视图上选择仿真,则选择哪个文件
                "${fileDirname}/src/math.c", // --> 修改为.c文件路径
                "-o", // 指定输出文件名,不加该参数则默认输出a.exe,Linux下默认a.out
                "${fileDirname}/${fileBasenameNoExtension}.exe",//选择输出的文件名称,和前面的${file}是对应的,一般默认的名称就是前面的${file}.exe
                "-Wall", // 开启额外警告
            ], // 编译命令参数
            "type": "shell", // 可以为shell或process,前者相当于先打开shell再输入命令,后者是直接运行命令
            "group": {
                "kind": "build",
                "isDefault": true // 设为false可做到一个tasks.json配置多个编译指令,需要自己修改本文件
            },
            "presentation": {
                "echo": true,
                "reveal": "always", // 在“终端”中显示编译信息的策略,可以为always,silent,never。具体参见VSC的文档
                "focus": false, // 设为true后可以使执行task时焦点聚集在终端
                "panel": "shared" // 不同的文件的编译信息共享一个终端面板
            },
        }
    ]
}

5、最后,再次运行F5,代码就会执行。

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值