Windows系统下安装配置 MinGW-w64 开发环境

2024-05-14 17:18

本文主要是介绍Windows系统下安装配置 MinGW-w64 开发环境,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MinGW、MinGW-w64 简介

MinGW(全称为,Minimalist GNU for Windows),它实际上是将经典的开源 C语言编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API ,因此可以将源代码编译为可在 Windows 中运行的可执行程序。而且还可以使用一些 Windows 平台不具备的,但是Linux平台具备的开发工具和API函数。用一句话来概括就是:MinGW 就是 GCC 的 Windows 版本 。

MinGW-w64原本是MinGW项目的分支,后来成为独立发展得项目,由于仅有MinGW-w64被GCC官方所支持, 而MinGW早已停止更新, 因此推荐使用MinGW-w64。

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

获取MinGW-w64

MinGW-w64官网:http://mingw-w64.org/doku.php/start

本人下载的是v7.0.0版本的,也是目前最新版的,发布日期:2019-11-10。

下载链接:https://sourceforge.net/projects/mingw-w64/files/

下载最新版的链接:https://sourceforge.net/projects/mingw-w64/files/latest/download

我们在Windows系统下可以选择在线安装的方式,对应下载的文件是:MinGW-W64-install.exe

<说明> mingw-w64-install.exe 安装文件,它本质上是一个下载程序,会根据我们之后的一些设置,选择性的下载相应的组件,并将它们组织在一起。所以,运行前要确定网络通畅,而且你有足够的时间,因为根据你的网速,它可能需要花费一定的时间来下载。
操作:用鼠标双击运行 mingw-w64-install.exe 。
注意:如果出现无法运行,或者安装出错,你可以右键点击它,并在弹出窗口中选择“以管理员身份运行”选项,重新运行 mingw-w64-install.exe ,基本可以解决大部分问题。

安装MinGW-w64

方式1—在线安装

一、以“管理员身份运行” mingw-w64-install.exe 文件,它会从服务器获取MinGW-w64 信息。

说明:这里程序正在链接服务器,以便获取存储在仓库中的 MinGW-w64 的文件信息。
操作:只需等待。

二、MinGW-w64 版本选择,如下图所示:

mingw-w64版本选择

说明:在这个界面上,可以根据所要搭建的开发环境,选择对应的选项,从而下载所需的组件。

操作:依次选择 Version、Architecture、Threads、Exception、Build revision 下拉列表中适当的选项,接下来将会详细介绍这些选项。

version

version选项:指的是你选择的GCC编译器的版本,我选择的是当前最新版本8.1.0,一般建议选择最新的版本。

操作:选中 8.1.0即可。

Architecture

Architecture选项:指的是你的电脑的系统类型,i686表示的是32位的系统类型,x86_64表示的是64位的系统类型。我本人的电脑是64位的系统类型,所以选中x86_64。

Threads

Threads选项:指的是线程模型,posix/win32。

说明:

(1)POSIX(Portable Operating System Interface,可移植操作系统接口),它是UNIX系统的一个API设计标准,很多类UNIX系统也在支持兼容这个标准,如Linux操作系统。

(2)Win32,它是Windows系统下一个API设计标准,如果你是开发Windows平台下的应用程序,就需要选择Win32。

操作:本人是在Windows下开发Linux应用程序,所以选择的是:posix。

Exception

Exception选项:指的是异常处理模型。i686系统架构有2种选择:dwarf 和 sjlj。x86_64系统架构也有2种选择:seh 和 sjlj。由于我选择的是64位的系统架构,所以可供选择的异常处理模式是:seh 和 sjlj。下面说明sjlj, seh, dwarf三者的区别:

在C++中有 try..throw..catch,当它执行这种结构时,它需要保存现场还原现场,而 sjlj, seh, dwarf 正是实现这类过程的三种方式。

sjlj 全称是 SetJump / LongJump,前者设还原点,后者跳到还原点。可用于32位或者64位系统。

seh (Structured Exception Handling,结构化异常处理) 是 Borland 公司的,微软买了其专利使用权,它利用了FS段寄存器,将还原点压入栈,收到异常时再弹出。相较而言,sjlj 是 C 标准库就有的东西,seh 在 2014 年前是有专利的,从性能上说 seh 比 sjlj 快。只用于64位系统。

dwarf 只支持32位系统 – 没有永久的运行时间开销 – 需要整个调用堆栈被启用,这意味着exception不能被抛出,例如Windows系统DLL。

综上所述:

【x86_64 64位】

1、seh 是新发明的,而 sjlj 则是古老的。只用于64位系统。

2、seh 性能比较好,但不支持 32位。 sjlj 稳定性好,支持 32位和64位。

因此,x86_64系统架构的推荐使用 seh 的异常处理模型。

【i686 32位】

1、dwarf 只支持32位,而sjlj 支持32位/64位,但是dwarf 的性能要优于 sjlj。

因此,i686系统架构的推荐使用 dwarf 的异常处理模型。

操作:我的电脑是x86_64系统架构的,所以我选中 seh。

【参考】https://wiki.qt.io/MinGW-64-bit

Build revision

Build revision选项:建立修订。

操作:选择默认选项,我的下拉菜单只有 0 这一个选项,别无选择了。

三、选择 MinGW-w64 的安装目录

可以看到,默认安装目录是在C盘的C:\Program Files\mingw-w64文件夹下,而C盘是系统盘,按照一般的习惯,我们尽量不把应用软件安装在系统盘里。因为以前的电脑使用的是机械硬盘,而机械硬盘频繁读写会降低效率,所以尽量将操作系统与应用软件放在不同的硬盘分区下。当然,现在的电脑大部分都配备了固态硬盘(SSD),而且通常作为系统盘来使用,因此已经没有读写效率的问题了。所以如果你还在用机械键盘,就将 MinGW-w64 放到其他非系统盘里,如果使用固态硬盘,则可以放在安装程序提示的默认位置,或其他地方均可。

操作:将自定义的路径直接复制到"Destination folder"下的文本框中,如下图是我自定义的安装路径:

说明:界面中的 Space available 指的是你选择的目录,所在的硬盘分区的剩余空间,而 MinGW-w64 至少会占用 500 MB 的空间。Create shortcuts in Start Menu 是说在开始菜单创建 MinGW-w64 的快捷方式,一般默认勾选即可。
操作:确认安装目录没问题后,点击红框中的“Next”按钮,开始正式安装 MinGW-w64 。

四、开始下载 MinGW-w64 安装文件

说明:安装程序开始连接服务器,并从中下载 MinGW-w64 的安装文件,下载速度取决于你所在的网络环境,下载所需的时间会有所不同,如果你有其他事情要做,可以点击“Cancel”按钮,取消本次安装。
操作:只需耐心等待。

五、下载完成后,点击Next按钮,最后点击Finish 按钮,安装完成。

方式2—离线安装

方式1安装方式,比较直观,对于新手建议采用方式1来安装mingw-w64,但是对网络要求比较高。也可以采用直接下载对应的离线压缩包文件,然后直接解压即可。

下载链接:https://sourceforge.net/projects/mingw-w64/files/

以目前最新版的为例,下载离线文件列表如下:

根据方式1上面的说明,选择对应的离线压缩包,我按照自己的需求,下载的是:x86_64-posix-seh版本的。下载完成后,直接解压到指定的目录下,会生成一个mingw64文件夹,本人的路径是:D:\Program Files\mingw64,mingw64文件夹的树型结构如下所示:

说明:这些子文件夹和Linux下/usr/local目录下的结构很相似,这里就不再做说明了。

配置MinGW-w64 开发环境

在电脑桌面,鼠标右击桌面图标【计算机】-->属性-->高级系统设置-->高级-->环境变量,有用户变量和系统变量。系统变量对所有用户有效,建议只在用户变量下进行配置。我的mingw64软件安装的路径为: D:\Program Files\mingw64

1、新建变量: PATH,变量值为:D:\Program Files\mingw64\bin

2、新建变量:LIB,变量值为:D:\Program Files\mingw64\lib

3、新建变量:INCLUDE,变量值为:D:\Program Files\mingw64\include

<Tips> Windows下的环境变量名是不区分大小写的,这点跟Linux系统是有所不同的,一般而言,是建议环境变量名使用大写。

配置完成后,点击“确定”按钮,使其生效。按下Windows+X,点击命令提示符,输入:gcc -v,如果配置成功就会打印出gcc的配置和版本信息,如下图所示:

说明:看打印的信息可以看到,我们使用的线程模型是:posix,gcc版本是8.1.0。

总结

至此,在Windows下安装配置MinGW-w64已经完成,在接下来的开发中我们就可以使用GCC编译器编译源文件了。其中,编译C源文件使用gcc命令,而编译C++源文件则使用g++命令。

参考

MinGW-w64安装教程—著名C/C++编译器GCC的Windows版本(在线安装方式)

在Windows中安装MinGW-w64

 

这篇关于Windows系统下安装配置 MinGW-w64 开发环境的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/989353

相关文章

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

mybatis映射器配置小结

《mybatis映射器配置小结》本文详解MyBatis映射器配置,重点讲解字段映射的三种解决方案(别名、自动驼峰映射、resultMap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定... 目录select中字段的映射问题使用SQL语句中的别名功能使用mapUnderscoreToCame

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

MySQL8 密码强度评估与配置详解

《MySQL8密码强度评估与配置详解》MySQL8默认启用密码强度插件,实施MEDIUM策略(长度8、含数字/字母/特殊字符),支持动态调整与配置文件设置,推荐使用STRONG策略并定期更新密码以提... 目录一、mysql 8 密码强度评估机制1.核心插件:validate_password2.密码策略级

ShardingProxy读写分离之原理、配置与实践过程

《ShardingProxy读写分离之原理、配置与实践过程》ShardingProxy是ApacheShardingSphere的数据库中间件,通过三层架构实现读写分离,解决高并发场景下数据库性能瓶... 目录一、ShardingProxy技术定位与读写分离核心价值1.1 技术定位1.2 读写分离核心价值二