Windows安装mingw32/w64

1.下载

MinGW-w64

WinLibs - GCC+MinGW-w64 compiler for Windows

Releases · niXman/mingw-builds-binaries (github.com)

MinGW-w64、UCRT 和 MSVCRT 是 Windows 平台上常用的 C/C++ 运行库,它们有以下不同点:

  1. MinGW-w64:是一个基于 GCC 的编译器套件,可以用于编译 Windows 平台上的 C/C++ 程序。MinGW-w64 使用的是 POSIX 标准的运行库,因此可以很好地兼容 Unix/Linux 程序。MinGW-w64 的默认运行库是 MSVCRT(Microsoft Visual C++ Runtime),但也可以使用其他运行库。
  2. UCRT(Universal CRT):是微软提供的一个通用 C 运行库,可以用于编译 Windows 平台上的 C/C++ 程序。UCRT 提供了许多与标准 C 库兼容的函数,并支持新的 C11 和 C++11 标准。UCRT 适用于 Windows 10 或更高版本的操作系统。
  3. MSVCRT(Microsoft Visual C++ Runtime):是微软提供的一个 C++ 运行库,可以用于编译 Windows 平台上的 C/C++ 程序。MSVCRT 提供了许多与标准 C 库兼容的函数,但不支持新的 C11 和 C++11 标准。MSVCRT 在 Windows 操作系统中已经内置,并且随着 Visual Studio 版本的升级而不断更新。

2.配置环境变量

将 MinGW 的 bin 目录添加到系统的 PATH 环境变量中,这样可以在命令行中直接使用 MinGW 的工具。

3.验证版本

gcc 和 g++ 都是 GNU 工具链中的编译器,它们的主要区别在于它们所编译的代码的语言不同。

gcc 是 GNU C 编译器,它主要用于编译 C 语言程序,可以将 C 语言源代码编译成可执行文件或动态链接库。

g++ 则是 GNU C++ 编译器,它主要用于编译 C++ 语言程序,可以将 C++ 语言源代码编译成可执行文件或动态链接库。

虽然 gcc 和 g++ 是两个不同的编译器,但它们都基于同一套 GNU 工具链,并共享许多相同的功能和选项。因此,除了语言不同外,它们的使用方式和命令选项也非常相似。

需要注意的是,C++ 语言相对于 C 语言来说增加了一些特性,例如类、继承、多态等。如果您想编译 C++ 代码,建议使用 g++ 编译器,因为它可以更好地支持这些特性。而如果您只是编译 C 代码,gcc 编译器就足够了。

gcc -v
gdb -v
mingw32-make -v

注:要使用make,请把mingw32-make改成make

clang 和 gcc 是两个不同的 C/C++ 编译器,而 mingw-w64 是一个 Windows 上的编译和运行时环境。注意,mingw-w64 本身并不是一个编译器,而是一组库、头文件和实用工具。

gcc 需要 mingw-w64 环境才能在 Windows 上编译程序,加上最初(现已过时)的 mingw 项目就是专为 gcc 设计的,因此通常用 mingw64 代指 64 位的 gcc 和 mingw-w64 环境。

mingw64、ucrt64、clang64 都是 Windows 原生程序(不依赖 cygwin.dll),不过 mingw64 是很早就有的,后两者是最近(本回答最初写于2021年6月)才新加的,~~所以只是选一个用的话就 mingw64 就没问题。~~(划掉) 2022年11月25日更新:现在 msys2 官方推荐优先选择 ucrt64,经过一年多时间,现在 ucrt64 环境已经非常稳定了,而且对 UTF-8 语言环境的支持更好。

后两者先后刚出来时我还查过,简而言之,这三者的区别是:mingw64 与 ucrt64 都是用 gcc 编译器编译的 Windows 64 位程序,只不过它们链接到的 crt(C runtime)不同, mingw64 是链接到了 msvcrt ,而 ucrt64 则是链接到了 Windows 上新的 ucrt 上。

而 clang64 很好理解,就是用 clang 而非 gcc 来编译各种库。另外它也是链接到了 ucrt 而非 msvcrt。

三者是共同点是,它们都需要 mingw-w64 环境来进行编译。

以 zstd 为例:

( /usr/bin/zstd 就是依赖 cygwin 的非原生程序,这里的 msys-2.0.dll 实际上就是 msys2 版的 cygwin.dll )

如果你了解 archlinux 的打包的话(如果不了解可以在 archwiki 了解一下),也可以从这几个包的打包脚本(PKGBUILD)来观察区别。msys2 的打包脚本可以在 packages.msys2.org 在线查看。

在这个网站上搜索 zstd 得到这几个 zstd 包的构建脚本,发现这几个 Windows 原生的包其实是共用同一个构建脚本的。从 mingw_arch 变量来看,还有几个32位的包和 arm64 的包也是用这个打包脚本。只不过它会根据不同的 MINGW_PACKAGE_PREFIX 环境变量来执行不同的构建工具、构建出不同的包。

mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32' 'clangarm64')
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc""${MINGW_PACKAGE_PREFIX}-ninja""${MINGW_PACKAGE_PREFIX}-cmake")

这里是 msys2 最初关于添加 ucrt64 与 clang64 构建的讨论:issue 6901


changelog:

  • 2022-11-25:跟随上游建议,推荐优先使用 ucrt64
  • 2022-06-13:更改措辞,让表述更加准确
  • 2022-01-24:添加了 msys2 官方文档的链接
  • 2021-06-07 20:13:init

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

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

相关文章

Edge浏览器报错:Ref A Ref B: Ref C

今天发现微软Edge浏览器非常频繁的出现以下报错:Ref A: 0BF6B9E03845450C8E6A6C31006AD7B9 Ref B: BJ1EDGE1116 Ref C: 2024-05-23T12:41:30Z 通过搜索发现用如下问题解决: 1.打开Edge浏览器 2.进入设置选项 3.找到隐私、搜索和服务 4.关闭跟踪防护后面…

【数据结构】【C语言】堆~动画超详细解读!

目录 1 什么是堆1.1 堆的逻辑结构和物理结构1.2 堆的访问1.3 堆为什么物理结构上要用数组?1.4 堆数据上的特点 2 堆的实现2.1 堆类型定义2.2 需要实现的接口2.3 初始化堆2.4 销毁堆2.5 堆判空2.6 交换函数2.7 向上调整(小堆)2.8 向下调整(小堆)2.9 堆插入2.10 堆删除2.11 //堆…

微服务项目收获和总结---第2,3天(分库分表思想,文章业务)

①分库分表思想 文章表一对一为什么要拆分?因为文章的内容会非常大,查询效率会很低,我们经常操作文章的基本信息,不会很经常查询文章内容。充分发挥高频数据的操作效率。 ②freemarker和minIO 由于文章内容数据量过大&#xff0c…

git clone 出现的问题

问题: core源码ref新API % git clone https://github.com/xxxx.git Cloning into core... remote: Enumerating objects: 58033, done. remote: Counting objects: 100% (1393/1393), done. remote: Compressing objects: 100% (750/750), done. error: 432 bytes of body are …

办公自动化-Python如何提取Word标题并保存到Excel中?

办公自动化-Python如何提取Word标题并保存到Excel中? 应用场景需求分析实现思路实现过程安装依赖库打开需求文件获取word中所有标题去除不需要的标题创建工作簿和工作表分割标题功能名称存入测试对象GN-TC需求标识符存入测试项标识存入需求标识符 完整源码实现效果学…

Nginx学习与使用记录

这里写自定义目录标题 定义域名(本地)Nginx的一下常用命令记录win系统使用 .bat来启动nginx配置 定义域名(本地) 本地定义域名不需要证书,直接更改hosts文件。 注意:在这个文件夹中是无法更改hosts文件的&…

Vue02-黑马程序员学习笔记

一、今日学习目标 1.指令补充 指令修饰符v-bind对样式增强的操作v-model应用于其他表单元素 2.computed计算属性 基础语法计算属性vs方法计算属性的完整写法成绩案例 3.watch侦听器 基础写法完整写法 4.综合案例 (演示) 渲染 / 删除 / 修改数量 …

一个简约高级视差效果PR动态图文开场视频模板

这是一个高质量且易于定制的pr模板。具有模块化结构,可以轻松更改内容。包括视频教程,即使是新手小白也可以轻松套用模板制作视频。 主要特点: 水平(19201080)和垂直(10801920)分辨率&#xff…

c语言:利用随机函数产生20个[120, 834] 之间互不相等的随机数, 并利用选择排序法将其从小到大排序后输出(每行输出5个)

利用随机函数产生20个[120, 834] 之间互不相等的随机数&#xff0c; 并利用选择排序法将其从小到大排序后输出&#xff08;每行输出5个&#xff09; 代码如下&#xff1a; #include <stdio.h> #include <time.h> #include <stdlib.h> int shenchen(int a[…

三维模型相互转换(obj文件转inp文件)

三维模型文件根据其含义都是可以进行相互转换的&#xff0c;这里主要介绍obj文件转化为inp文件。 什么是inp文件&#xff1f; inp文件是以.inp为后缀的文本文件&#xff0c;它包括了模型的全部数据信息&#xff0c;ABAQUS求解器分析的对象是inp文件&#xff0c;软件生成的.ca…

PHP身份证真伪验证、身份证二、三要素核验、身份证ocr接口

实名认证有利于网络绿化&#xff0c;所以在互联网发展迅速的今天&#xff0c;实名认证成了“刚需”。而OCR与实名认证两种产品的结和更是擦出了美丽的火花。翔云人工智能开放平台提供的实名认证OCR接口良好的展现出两种功能结合的效果。以身份实名认证产品举例来说&#xff0c;…

AI智能体|扣子Coze“图像流”功能速览

大家好&#xff0c;我是无界生长。 AI智能体&#xff5c;扣子Coze“图像流”功能速览Coze提供易上手的图像处理工作流&#xff0c;包含智能生成、智能编辑和基础编辑三类节点&#xff0c;旨在通过AI技术简化图像处理过程。本文对扣子Coze“图像流”功能做了简单介绍&#xff0…

【qt】初识模型和视图

模型和视图 一.模型和视图的概念1.关系2.模型3.数据4.视图5.特点 二.文件系统模型1.那种数据&#xff1f;2.界面拖放3.创建模型4.模型设置数据5.视图设置模型6.模型索引7.模型操作数据①文件名②文件大小③文件类型④是否是目录⑤文件路径 三.字符串链表模型1.那种数据&#xf…

论Promise在前端江湖的地位及作用

系列文章&#xff1a; 先撸清楚&#xff1a;并发/并行、单线程/多线程、同步/异步 论Promise在前端江湖的地位及作用 前言 上篇文章阐述了并发/并行、单线程/多线程、同步/异步等概念&#xff0c;这篇将会分析Promise的江湖地位。 通过本篇文章&#xff0c;你将了解到&#x…

100base-tx、100base-fx的区别

100表示网线设计的频率&#xff0c;单位MHz。值越大&#xff0c;网线的速度越快。baseBASEband的缩写&#xff0c;基带t物理介质是双绞线缆f物理介质是光纤x同一个传输效率下的多种不同的标准 T表示双绞线&#xff0c;base-tx是运行超五类双绞线的快速以太网端口&#xff0c;全…

AI崛起,掌握它,开启智能新生活!

AI崛起&#xff0c;掌握它&#xff0c;开启智能新生活&#xff01; &#x1f604;生命不息&#xff0c;写作不止 &#x1f525; 继续踏上学习之路&#xff0c;学之分享笔记 &#x1f44a; 总有一天我也能像各位大佬一样 &#x1f3c6; 博客首页 怒放吧德德 To记录领地 &…

Linux中vim的基本使用

目录 vim中的三种模式以及基本操作命令模式(默认模式)插入模式底行模式 命令模式下的命令底行模式下的命令 vim是Linux和Unix环境下最基本的文本编辑器&#xff0c;类似于windows上的记事本 vim和Visual studio相比&#xff0c;vim并不集成&#xff0c;vim只能用来写代码 VS把写…

Nginx限制IP访问详解

在Web服务器管理中&#xff0c;限制某些IP地址访问网站是一个常见的需求。Nginx作为一款高性能的HTTP服务器和反向代理服务器&#xff0c;提供了灵活强大的配置选项来实现这一功能。本文将详细讲解如何在Nginx中限制IP访问&#xff0c;并通过示例代码展示具体操作。 一、Nginx…

使用 Python 简单几步去除 PDF 水印

推荐一个AI网站&#xff0c;免费使用豆包AI模型&#xff0c;快去白嫖&#x1f449;海鲸AI 在处理 PDF 文件时&#xff0c;水印有时会影响文件的可读性或美观性。幸运的是&#xff0c;Python 提供了多种库来操作 PDF 文件&#xff0c;其中 PyMuPDF&#xff08;又名 fitz&#xf…

2024年5月24日 十二生肖 今日运势

小运播报&#xff1a;2024年5月24日&#xff0c;星期五&#xff0c;农历四月十七 &#xff08;甲辰年己巳月戊子日&#xff09;&#xff0c;法定工作日。 红榜生肖&#xff1a;龙、牛、猴 需要注意&#xff1a;兔、羊、马 喜神方位&#xff1a;东南方 财神方位&#xff1a;…