当前位置: 首页 > news >正文

【编译器】VSCODE编译C语言

【编译器】VSCODE编译C语言


文章目录

    • @[TOC](文章目录)
  • 前言
  • 一、下载配置
  • 二、代码
    • 1.main.c
    • 2.lanuch
    • 3.task
  • 三、编译运行——方法一:编译器运行
    • 1.编译:终端-运行生成任务(ctrl+shift+B)
    • 2.运行:运行-启动调试(F5)
  • 四、编译运行——方法二:指令
    • 1.生成exe
    • 2.运行exe
  • 五、多文件调试
    • 1.main.c
    • 2.test1.c
    • 3.test1.h
    • 4.launch.json
    • 5.task.json
  • 六、参考资料
  • 总结

前言

使用工具:
1.ARM仿真器/J-OBV2仿真器


提示:以下是本篇文章正文内容,下面案例可供参考

一、下载配置

Release of 14.2.0-rt_v12-rev0

网络上很多了,可以参考引用文章配置

二、代码

1.main.c

#include <stdio.h>  //io头文件用于调用 printf函数
#include <stdlib.h>   //lib头文件用于调用system函数

//主函数
int main()
{
  printf("hello world\n");  //打印hello world   \n为换行符
  system("pause");  //暂停运行,否则直接运行完程序会直接关闭窗口(vscode需要,其他编译器看情况) 
}

2.lanuch

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "C/C++ Runner: Debug Session",
      "type": "cppdbg",
      "request": "launch",
      "args": [],
      "stopAtEntry": false,
      "externalConsole": true,
      "cwd": "${workspaceFolder}",
      "program": "${workspaceFolder}\\${fileBasenameNoExtension}.exe",
      "MIMode": "gdb",
      "miDebuggerPath": "gdb",
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ]
    }
  ]
}

3.task

单文件不需要task

在这里插入图片描述

三、编译运行——方法一:编译器运行

1.编译:终端-运行生成任务(ctrl+shift+B)

在这里插入图片描述

2.运行:运行-启动调试(F5)

在这里插入图片描述

在这里插入图片描述

四、编译运行——方法二:指令

1.生成exe

gcc test.c -o test 

2.运行exe

./test 

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

五、多文件调试

1.main.c

#include <stdio.h>
#include "test1.h"
#include <stdlib.h>
int main(void)
{
 
    printf("hello world\r\n");
    test();//此函数在test1.c中实现,在test1.h中声明
    system("pause");
    return 0;
}

2.test1.c

#include "test1.h"
#include <stdio.h>
 
void test(void)
{
    printf("this is test\r\n");
 
}

3.test1.h

void test(void);

4.launch.json

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "C/C++ Runner: Debug Session",
      "type": "cppdbg",
      "request": "launch",
      "args": [],
      "stopAtEntry": false,
      "externalConsole": true,
      "cwd": "${workspaceFolder}",
      "program": "${workspaceFolder}\\${workspaceRootFolderName}.exe",
      "MIMode": "gdb",
      //"miDebuggerPath": "C:/TDM-GCC-64/bin/gcc.exe",
      "miDebuggerPath": "gdb",
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ]
    }
  ]
}

5.task.json

注意,这个地方我使用"${workspaceFolder}/*.c",会报错,所以改为每个文件添加

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: gcc.exe 生成活动文件",
            "command": "C:/TDM-GCC-64/bin/gcc.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                //"${workspaceFolder}/*.c",
                "${workspaceFolder}\\main.c",
                "${workspaceFolder}\\test1.c",
                "-o",
                "${workspaceFolder}/${workspaceRootFolderName}.exe",
            ],
            "options": {
                "cwd": "C:/TDM-GCC-64/bin/"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

在这里插入图片描述

六、参考资料

VScode任务配置详解(task.json与launch.json)
Windows系统中vscode的c/c++开发环境配置(三):多文件编译和调试
VSCode中的tasks.json配置为*.c后发现报错 fatal error: *.c: Invalid argument compilation terminated.
VScode搭建C/C++开发环境
使用Vscode创建一个C_Hello程序

总结

本文仅仅简单介绍了【编译器】VSCODE编译C语言,评论区欢迎讨论。

相关文章:

  • 如是APP:AI精准匹配需求,信用体系重构信任,双轮驱动打造无套路电商
  • 将本地已有的项目上传至仓库
  • 第七章:go 切片
  • 对开源VLA sota π0的微调——如何基于各种开源数据集、以及你自己的私有数据集微调π0(含我司的微调实践)
  • 数据结构(回顾)
  • 深度学习算法实战——风格迁移(主页有源码)
  • 开发指南107-谷歌内核浏览器滚动条设置
  • 开发过程中遇到的问题记录
  • 011---UART协议的基本知识(一)
  • Tensorflow 2.0 GPU的使用与限制使用率及虚拟多GPU
  • 计算机视觉算法实战——野猪检测(主页有源码)
  • 【2025年27期免费获取股票数据API接口】实例演示五种主流语言获取股票行情api接口之沪深A股跌停股池数据获取实例演示及接口API说明文档
  • 虚函数和虚表的原理是什么?
  • Deepseek中的MoE架构的改造:动态可变参数激活的MoE混合专家架构(DVPA-MoE)的考虑
  • 【算法day5】最长回文子串——马拉车算法
  • 静态网页的爬虫(以电影天堂为例)
  • Git学习笔记(二)
  • 大白话react第十八章React 与 WebGL 项目的高级拓展与优化
  • Unity之如何实现哔哩哔哩直播弹幕游戏
  • docker本地部署RagFlow
  • 雷军内部演讲回应质疑:在不服输、打不倒方面,没人比我们更有耐心
  • 人民日报:从“轻微免罚”看涉企执法方式转变
  • “一百零一个愿望——汉字艺术展”亮相意大利威尼斯
  • 总没胃口,一吃就饱……别羡慕,也可能是生病了
  • 中方代表团介绍中美经贸高层会谈有关情况:双方一致同意建立中美经贸磋商机制
  • 10名“鬼火少年”凌晨结队在城区飙车,警方:涉非法改装,正处理