C语言学习系列:GCC编译器Windows版本MinGW-w64的安装教程

本文图文分享如何安装C语言编译器——MinGW-w64。

只要看到这篇文章,就可以按照文中步骤正确安装MinGW-w64并使用。

一、什么是 MinGW-w64 ?

我们知道C语言是高级语言,必须编译为二进制文件,才能为计算机运行,MinGW-w64就是完成编译工作的软件。
在这里插入图片描述

MinGW 的全称是:Minimalist GNU on Windows,它是开源C语言编译器GCC的Windows版本,可以将源代码编译为可在 Windows 中运行的可执行程序。

MinGW-w64 与 MinGW 的区别在于 MinGW 只能编译生成32位可执行程序,而 MinGW-w64 则可以编译生成 64位 或 32位 可执行程序。

MinGW 现已被 MinGW-w64 所取代,且 MinGW 也早已停止了更新。

二、为什么使用 MinGW-w64 ?

1,开源免费。MinGW-w64 是开源软件,可以免费使用。

2,社区活跃。MinGW-w64 由一个活跃的开源社区在持续维护,因此不会过时。MinGW-w64 支持最新的C语言标准。

3,一步到位。MinGW-w64 使用 Windows 的C语言运行库,因此编译出的程序不需要第三方 DLL ,可以直接在 Windows 下运行。

4,大厂背书。那些著名的开源 IDE 实际只是将 MinGW-w64 封装了起来,使它拥有友好的图形化界面,简化了操作,但内部核心仍然是 MinGW-w64。

5,安全可靠。MinGW-w64 是稳定可靠的、持续更新的 C/C++ 编译器,使用它可以免去很多麻烦,不用担心跟不上时代,也不用担心编译器本身有bug,可以放心的去编写程序。

三、MinGW-w64 适合做什么?

对于熟悉 MinGW-w64 的高手而言,它可以编译任何C语言程序。

对于一般人来说,MinGW-w64 太过简陋,连图形用户界面都没有,所以真正流行的是集成了 MinGW-w64 的IDE。

但对于C语言初学者,如下几个原因,使得MinGW-w64成为学习过程中的最佳选择:

  • 能装。黑色的命令提示符界面很能装
  • 简洁。在刚开始学C语言时,所有代码通常都写在一个文件中,只要输入几个简单的命令,就能用 MinGW-w64 编译成可执行文件,然后运行。但是那些著名的IDE比如VS,会自动生成一大堆工程文件,让初学者摸不着头脑,而 MinGW-w64 则只会生成一个可执行文件
  • 当然,真正工作还是用VS更好

四,安装MinGW-w64

1,下载

直接官网下载
https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/

打开网页后,下拉到下图位置:
在这里插入图片描述
点击下载,下载完成后,可以在文件系统中看到这个安装程序:

在这里插入图片描述

2,安装

解压即安装:
在这里插入图片描述

3,配置环境变量

3.1 右键此电脑,选择属性

在这里插入图片描述

3.2 选择高级系统设置

在这里插入图片描述

3.3 选择环境变量

在这里插入图片描述

3.4 双击Path

在这里插入图片描述

3.5 点击新建

在这里插入图片描述

3.6 输入第2步解压后目录下的bin目录所在路径

在这里插入图片描述
点击确定,即可完成环境变量配置。

4,测试

4.1,编写源码

下面是一个简单的 C 程序hello.c,它是一个普通的文本文件,任何文本编译器都能用来写。

#include <stdio.h>int main(void) {printf("Hello World\n");return 0;
}

上面这个程序作用仅仅是在屏幕上面显示“Hello World”。

4.2,使用MinGw-w64编译

假设你已经安装好了 GCC 编译器,可以打开命令行,执行下面的命令:

gcc hello.c

在这里插入图片描述

上面命令使用gcc编译器,将源文件hello.c编译成二进制代码。

运行这个命令以后,默认会在当前目录下生成一个编译结果文件a.exe,如下图则表示编译成功。
在这里插入图片描述

此外,编译时可以通过GCC 的-o参数(output 的缩写)指定编译生成的文件名:

gcc -o hello hello.c

在这里插入图片描述

上面命令的-o hello指定编译生存的文件名为hello(取代默认的a.exe)。编译后就会生成一个名叫hello.exe的可执行文件,相当于为a.exe指定了名称。

4.3,运行

运行第2步编译生成的文件,就会在屏幕上输出Hello World。

如果是windows,打开cmd命令行,切换到代码所在目录下,执行如下命令:

hello.exe

有如下所示输出,表示编译的结果可运行:
在这里插入图片描述

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

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

相关文章

理解我的积木编程思想

1 学习教程&#xff0c;至少7139手册2 编程实践&#xff0c;遇到实际问题后&#xff0c;在技术资料中查找关键词3 选择适合的条目找到代 码。修正&#xff0c;组合。

[发布]嵌入式系统远程测控软件-基于Qt

目录 一. 引言二. 软件功能2.1 原理2.2 软件功能2.3 运行环境 三. 软件操作使用3.1 软件界面3.2 软件功能使用详解3.2.1 连接3.2.2 数据监测3.2.3 数据修改3.2.4 数据保存 3.3 软件的硬件连接 四. 通信协议——STM32移植篇4.1 通信协议4.2 STM32如何传输浮点数4.3 简单移植&…

shell编程(三)—— 控制语句

程序的运行除了顺序运行外&#xff0c;还可以通过控制语句来改变执行顺序。本文介绍bash的控制语句用法。 一、条件语句 Bash 中的条件语句让我们可以决定一个操作是否被执行。结果取决于一个包在[[ ]]里的表达式。 bash中的检测命令由[[]]包起来&#xff0c;用于检测一个条…

第一次视频学习

1、了解AI答题应用 1.1 业务流程架构图 1.2 自定义上传题目流程 1.3 时序图 这个比较困难&#xff0c;第一次了解到流式&#xff0c;便于前端与用户交互

【微服务】springcloud-alibaba 配置多环境管理使用详解

目录 一、前言 二、配置多环境问题概述 2.1 什么是微服务多环境配置管理 2.1.1 微服务多环境配置管理问题起源 2.2 为什么要做多环境配置管理 2.3 微服务多环境配置管理解决方案 三、springboot 配置多环境管理解决方案 3.1 前置准备 3.1.1 搭建一个springboot工程 3.…

【PowerDesigner】创建和管理CDM之使用实体间关系

目录 &#x1f30a;1. PowerDesigner简介 &#x1f30d;1.1 常用模型文件 &#x1f30d;1.2 PowerDesigner使用环境 &#x1f30a;2. 创建和管理CDM &#x1f30d;​​​​​​2.1 新建CDM &#x1f30d;2.2 使用实体间关系 &#x1f30c;a. 使用联系 &#x1f30c;b. …

嵌入式仪器模块:DMM LCR SMU 及自动化测试软件

• 6 位数字表显示 • 24 位分辨率 • 250 KSPS 采样率 • 电源和数字 I/O 均采用隔离抗噪技术 应用场景 • 电压、电流、电阻、电感、电容的高精度测量 • 二极管/三极管测试 通道1222输入阻抗电压10 MΩHigh-Z, 10 MΩHigh-Z电流10 Ω50 mΩ / 2 Ω / 2 KΩ2 KΩ / 2 M…

如何理解external

external 函数应该只被外部函数调用但也可以被内部调用&#xff0c;但是这种内部调用也是有外部调用机制&#xff0c;即新产生message! 例子1 // SPDX-License-Identifier: GPL-3.0pragma solidity >0.8.2 <0.9.0;contract ExternalDemo{address public caller;functi…

【图解IO与Netty系列】Netty核心组件解析

Netty核心组件解析 Bootstrap & ServerBootstrapEventLoop & EventLoopGroupChannelChannelHandler & ChannelPipeline & ChannelHandlerContextChannelHandlerChannelPipelineChannelHandlerContext ChannelFuture Bootstrap & ServerBootstrap Bootstra…

A股所有公司ZL申请与创新绩效分析(2000-2022年)

数据简介&#xff1a;专利是创新成果的主要载体&#xff0c;专利所包含的技术、经济、法律等信息主要通过结构化专利专利文献著录项的形式加以呈现。专利申请与创新绩效已成为衡量上市公司竞争力的重要指标。目前&#xff0c;各国ZSCQ管理部门开发管理的开放式平台是获取ZL数据…

OBS 录屏软件:录制圆形头像画中画,设置卡通人像(保姆级教程,有步骤图,建议收藏)

Mac分享吧 文章目录 一、OBS录屏软件 圆形头像画中画效果注意&#xff1a;圆形画中画仅需要在软件中设置一次&#xff0c;每次录制&#xff0c;使用带有圆形头像画中画的场景 录制视频即可。该场景不可删除&#xff01;&#xff01;&#xff01;若删除&#xff0c;则需要重新设…

时序数据库是Niche Market吗?

引言 DB-Engines的流行程度排行从其评估标准[4]可以看出完全不能够做为市场规模的评估标准。甚至于在知道市场规模后可以用这个排行作为一个避雷手册。毕竟现存市场小&#xff0c;可预见增长规模小&#xff0c;竞争大&#xff0c;创新不足&#xff0c;那只能卷价格&#xff0c…

数据结构---查找

个人介绍 hello hello~ &#xff0c;这里是 code袁~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f981;作者简介&#xff1a;一名喜欢分享和记录学习的…

运 算 符

算术运算符 算术运算符包括&#xff1a;&#xff0c;-&#xff0c;*&#xff0c;/&#xff0c;%&#xff0c;&#xff0c;-- 当左右两边都是数值型时&#xff0c;则做加法运算。 当左右两边有一方为字符串&#xff0c;则做拼接运算。任何一个 Java 对象都可以转换为字符串。 …

.Net实现SCrypt Hash加密

方案1 &#xff08;加密后存储“算法设置”、“盐(随机值)”、“Hash值”&#xff0c;以“$”分隔&#xff09;&#xff1a; //Nuget引入SCrypt.NET库 using Org.BouncyCastle.Crypto.Generators; using Scrypt; using System; using System.Security.Cryptography; namespace …

8.让画面动起来

一、Unity Shader中的内置变量&#xff08;时间篇&#xff09; 动画效果往往都是把时间添加到一些变量的计算中&#xff0c;以便在时间变化的同时也可以随之变化。Unity shader提供了一系列关于时间的内置变量来允许我们方便地在Shader中访问运行时间&#xff0c;实现各种动画…

暴雨推出X705显示器:23.8英寸100Hz IPS屏

IT资讯 6月 7 日消息&#xff0c;日前&#xff0c;暴雨发布了一款 23.8 英寸 IPS 显示器&#xff0c;直屏、支持 100Hz 刷新率。 据官方介绍&#xff0c;X705 显示器分辨率为 19201080&#xff0c;亮度为 300 尼特&#xff08;典型值&#xff09;&#xff0c;对比度 1000:1&…

从Log4j和Fastjson RCE漏洞认识jndi注入

文章目录 前言JNDI注入基础介绍靶场搭建漏洞验证注入工具 log4j RCE漏洞分析漏洞靶场检测工具补丁绕过 Fastjson RCE漏洞分析漏洞靶场检测工具补丁绕过 总结 前言 接着前文的学习《Java反序列化漏洞与URLDNS利用链分析》&#xff0c;想了解为什么 Fastjson 反序列化漏洞的利用…

关于用宽带(拨号)连接VPN无法上网,但是wifi或者热点就可以的问题

参考链接&#xff1a;https://zhuanlan.zhihu.com/p/580929250https://zhuanlan.zhihu.com/p/580929250 https://blog.csdn.net/Yaoyao2024/article/details/132245249文章浏览阅读10w次&#xff0c;点赞161次&#xff0c;收藏515次。很多同学在学习访问学校提供的资源时或者一…

队列和栈的实现

文章目录 队列队列的定义队列常见的基本操作队列的顺序存储结构实现 栈栈的定义栈的常见基本操作栈的顺序存储实现 栈的链式存储实现 队列 队列的定义 队列&#xff08;queue&#xff09;是只允许在一端进行插入操作&#xff0c;而在另一端进行删除操作的线性表。队列是一种先…