vscode makfile编译c程序

编译工具安装

为了在 Windows 上安装 GCC,您需要安装 MinGW-w64。

MinGW-w64 是一个开源项目,它为 Windows 系统提供了一个完整的 GCC 工具链,支持编译生成 32 位和 64 位的 Windows 应用程序。

1. 下载MinGW-w64源代码,如图点击进去可以下载源代码,但是由于网页更新后,该路径没有编译好的安装包。

访问 MinGW-w64 的主页 mingw-w64.org,进入 MinGW 下载页面 Downloads - MinGW-w64,下载最新版本的 MinGW-w64 安装程序。

2.下载mingw-builds-install.exe安装,改方法可能没法下载

 https://sourceforge.net/projects/mingwbuilds/files/mingw-builds-install/

3.下载绿色版本的MinGW-w64,解压并把路径加入环境变量即可使用,下载链接如下:

https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/threads-posix/sjlj/

所以演示绿色版的安装过程,绿色版只是需要添加环境变量,将绿色版解压到D盘根目录,如下下载后解压即可直接使用;

把存放的路径比如当前存放置:D:\mingw64\bin 加入环境变量

win+R,输入 cmd,进入windows命令行模式。输入 gcc -v 或者gcc --version,可以查看gcc安装情况

vscode安装

isual Studio Code虽然它是一个通用的文本编辑器,但它有很多插件支持 C/C++ 开发,使其成为一个流行的选择,通过安装 C/C++ 插件和调整设置,你可以使其成为一个很好的 C 语言开发环境。

1. 安装包下载地址

VScode 官网地址:https://code.visualstudio.com/

VScode 官方文档地址:https://code.visualstudio.com/docs

下载想要的格式包链接:

Download Visual Studio Code - Mac, Linux, Windows

2. 安装教程

VSCode 安装很简单,点击 Next,傻瓜式安装;

注意安装路径设置、环境变量默认自动添加到系统中,勾选以下所有选项:

vscode插件安装

比如安装汉化包,VScode 安装汉化包很简单,打开 VScode,点击安装扩展,在搜索框输入 Chinese,然后点 Install 就可以。

 

vscode编译C程序

1.配置C/C++环境,安装C/C++插件。点击插件,搜索“C”,点击“install”:

 下载以后,重启VSCode,如果提示你需要安装一些其他C/C++扩展,选择是就可以 

2.新建一个main.c文件,并输入c代码

3. vscode界面,File->Open Folder,选择打开上面的D:\c_code文件夹,

3.运行代码

【1】点击如图控件

【2】选择第一个,就会在终端就输出编译 结果,同时生成了一个task.json的文件

或者,界面右键,点击“Run Code”,即可运行该C代码

配置文件和编译调试选项

想要在 VS Code 中运行和调试 C/C++ 程序,涉及三个配置文件:tasks.json、launch.json 和 c_cpp_properties.json。这三个配置文件一起提供了一个完整的 C/C++ 开发环境的配置。

  •    tasks.json 文件用于配置任务(例如编译)
  •    launch.json 文件用于配置调试器
  •  c_cpp_properties.json 文件用于配置 IntelliSense 功能

tasks.json 文件

tasks.json可以修改为如下,对应注释部分

{"tasks": [{"type": "cppbuild","label": "C/C++: gcc.exe build active file","command": "D:\\mingw64\\bin\\gcc.exe","args": ["-fdiagnostics-color=always","-g",//"${file}","*.c",//这一句代表编译当前目录下所有后缀都是.c的文件"-o",//"${fileDirname}\\${fileBasenameNoExtension}.exe""${fileDirname}\\allfile.exe"//上面那句话的意思是,生成的可执行文件全部叫做allfile.exe,如果想改回来,把这一句注释掉,然后把上一句取消注释就行了],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "Task generated by Debugger."}],"version": "2.0.0"
}

tasks. json文件生成步骤如下:

1.选择.c文件,选择终端配置。

 2. 选择如图部分

3. 生成了如下配置文件

 4.把配置文件修改为自己的样式,用于生成可执行文件

5.运行代码,生成可执行文件

6. 生成任务成功后,打开PowerShell,运行生成的文件(如果运行不成功,可能是由于gcc环境变量是新配置的,重启一下vscode即可生成成功)!

7. 如果需要在终端输入所以需要使能code runner的Run In Terminal功能。

launch.json文件

1.点击如图图标,点击创建launch.json文件

点击右下角:

 2. 修改launch.json的配置,如修改如下注释部分,注意是修改编译生成的可执行文件路径和名称;以及gdb.exe调试器的路径。

{"version": "0.2.0","configurations": [{"name": "(gdb) Launch","type": "cppdbg","request": "launch",//"program": "输入程序名称,例如 ${workspaceFolder}/a.exe","program": "${fileDirname}\\allfile.exe",//上面一句是tasks.json中设置好的可执行程序,如果没有按照我上一步来设置tasks.json,不要动这里"args": [],"stopAtEntry": false,"cwd": "${fileDirname}","environment": [],"externalConsole": false,"MIMode": "gdb",//"miDebuggerPath": "/path/to/gdb","miDebuggerPath": "D:\\mingw64\\bin\\gdb.exe",//上一句是指你的gdb路径,把之前让你加入环境变量的路径复制过来,然后加上gdb.exe,然后把单斜杠\换成双斜杠\\!!!!!"setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true},{"description": "Set Disassembly Flavor to Intel","text": "-gdb-set disassembly-flavor intel","ignoreFailures": true}]},{"name": "C/C++ Runner: Debug Session","type": "cppdbg","request": "launch","args": [],"stopAtEntry": false,"externalConsole": true,"cwd": "d:/c_code","program": "d:/c_code/build/Debug/outDebug","MIMode": "gdb","miDebuggerPath": "gdb","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true}]}]
}

 3.点击 “Run” ->“Start Debugging”,或者点击左侧 “Run and Debug” 按钮打开运行和调试窗口,点击窗口上方 Launch 旁边的绿色小三角按钮开始调试(也可以直接按 F5 键进入调试模式)。开始调试代码。

按调试按键,单步执行,即可查看调试信息,变量值变化等

c_cpp_properties.json 文件

c_cpp_properties.json 文件不是必须的,主要用于配置 C/C++ 扩展的 IntelliSense 设置,指定编译器路径、标准库路径、头文件路径、宏定义等信息。它影响的是编辑器对代码的智能提示、语法检查等功能,而不是编译任务。

创建 c_cpp_properties.json 文件的方法是:通过快捷键 Ctrl + Shift + P 打开执行命令的输入框,输入 “C/C++”,选择 “C/C++: 编辑配置(JSON)”。

如果上面没有出现编辑配置(UI),则可以选择其他版本重新安装。

选择编辑配置后多了.vscode

 

进行相关项配置:

生成如下配置:

多文件编译

使用makefile编译

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

这个操作惊呆我了!海康存储 R1竟然可以这样部署Portainer

这个操作惊呆我了!海康存储 R1竟然可以这样部署Portainer 哈喽小伙伴们好,我是Stark-C~ 最近到手了海康存储(HIKVISION)私有云R1 ,该机的卖点还是很多的,比如优秀的做工,强大的配置&#xff0…

雷电模拟器ls内部操作adb官方方法

正常情况下,我们通过adb操作模拟器,如安装软件、运行shell命令等,但是用windows系统,adb就经常掉线,端口被占用,或者发现不到设备,对于调试或者自动化非常痛苦。就在雷电安装目录下,…

TS学习笔记

一、TS运行环境搭建 1、安装 安装命令 npm i -g typescript 第一步:新建index.html和demo.ts 第二步:在index.html引入demo.ts文件 第三步:运行TS的命令 tsc demo.ts 注意:运行命令后,会将ts文件转换成js文件 …

使用Jest进行JavaScript单元测试

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 使用Jest进行JavaScript单元测试 引言 Jest 简介 安装 Jest 创建基本配置 编写测试用例 运行测试 快照测试 模拟函数 代码覆盖率…

机器学习算法之回归算法

一、回归算法思维导图 二、算法概念、原理、应用场景和实例代码 1、线性回归 1.1、概念 ‌‌线性回归算法是一种统计分析方法,用于确定两种或两种以上变量之间的定量关系。‌ 线性回归算法通过建立线性方程来预测因变量(y)和一个或多个自变量…

Android中同步屏障(Sync Barrier)介绍

在 Android 中,“同步屏障”(Sync Barrier)是 MessageQueue 中的一种机制,允许系统临时忽略同步消息,以便优先处理异步消息。这在需要快速响应的任务(如触摸事件和动画更新)中尤为重要。 在 An…

突破职场瓶颈,实现个人成长

在职场生涯中,我们总会遇到各种各样的瓶颈。这些瓶颈如同成长道路上的荆棘,让我们感到困惑、焦虑甚至恐惧。然而,瓶颈并非无法逾越,只要我们掌握正确的方法,勇敢面对,就能顺利突破,实现个人成长…

ubuntu 24.04中安装 Easyconnect,并解决版本与服务器不匹配问题

下载安装包 下载地址 https://software.openkylin.top/openkylin/yangtze/pool/all/ 页面搜索 easyconnect 选择 easyconnect_7.6.7.3.0_amd64.deb安装 sudo dpkg --install easyconnect_7.6.7.3.0_amd64.deb卸载 sudo dpkg --remove easyconnect出现的问题 安装以后第…

判断是否是变位词

题目:给定两个单词,判断这两个单词是否是变位词。如果两个单词的字母完全相同,只是位置有所不同,则称这两个单词为变位词。例如eat和tea是变位词。 答:问题分析:判断是否为变位词,只需要分别统计…

解决python matplotlib画图无法显示中文的问题

在用matplotlib做一个简单的可视化统计时,由于标签是中文,无法显示,只是显示出来一些方框(如图) 问题在于,当前matplotlib使用的字体不支持中文,我们进行替换就可以了 我想替换为黑体&#xff…

Docker:网络

Docker:网络 Docker 网络架构CNMLibnetwork驱动网络类型 命令docker network lsdocker network inspectdocker network createdocker network connectdocker network disconnectdocker network prunedocker network rm 网络操作bridgehostcontainernone Docker 网络…

力扣排序268题 数字丢失

题目: 丢失的数字 给定一个包含[0,n]中n各数的数组nums,找出[0,n]这个范围 内没有出现在数组中的那个数。 示例1: 输出:n 3,因为有3个数字,所以所有的数字都在范围 [0,3]内。2是丢失的数字,因为它没有出现…

自动化测试类型与持续集成频率的关系

持续集成是敏捷开发的一个重要实践,可是究竟多频繁的集成才算“持续”集成? 一般来说,持续集成有3种常见的集成频率,分别是每分钟集成、每天集成和每迭代集成。项目组应当以怎样的频率进行集成,这取决于测试策略&…

Gitlab-runner running on Kubernetes - hostAliases

*Config like this. *That in your helm values.yaml.

从头开始学PHP之面向对象

首先介绍下最近情况,因为最近入职了且通勤距离较远,导致精力不够了,而且我发现,人一旦上了班,下班之后就不想再进行任何脑力劳动了(对大部分牛马来说,精英除外)。 话不多说进入今天的…

【综合算法学习】(第十五篇)

目录 图像渲染(medium) 题目解析 讲解算法原理 编写代码 岛屿数量(medium) 题目解析 讲解算法原理 编写代码 图像渲染(medium) 题目解析 1.题目链接:. - 力扣(LeetCode&…

教育技术革新:SpringBoot在线试题库系统开发

2 相关技术 2.1 Spring Boot框架简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Sprin…

OTFS延迟多普勒信道模型(信道模型代码)

一、信道模型公式 1、延迟多普勒域信道模型 在一个M*N维的延迟多普勒域中,定义M为子载波数,子载波间隔为 对应倒数时隙长度为,信号总长度为,L-1表示最大径数。 公式中冲激响应延迟域移动的分辨率,如下图中Delay轴的一格也就是即,多…

Failed to search for file: Cannot update read-only repo

今天在读《Linux就该这么学》并上机操作RedHat Linux 8。结果在执行指令时却出现了问题: 我明明已经是root权限了,我于是上网去找,但也没看到合适的解答。为什么会和书上的操作结果不一样。 后来我突然意识到是不是我打了不该打的空格,于是…

Android中SurfaceView与GLSurfaceView 的关系

SurfaceView 与 GLSurfaceView 的关系 在 Android 开发中,SurfaceView 和 GLSurfaceView 是实现自定义渲染效果的关键组件。它们提供了不同的渲染方式,适用于不同的应用场景。我们将通过以下几个方面详细说明 SurfaceView 和 GLSurfaceView 的特点及实现…