用MSYS2安装mingw

article/2025/8/14 19:11:54

文章目录

  • 前言
  • 卸载mingw
  • 安装MSYS2

前言

安装MSYS2的原因是,在windows安装protobuf时,想用mingw编译protobuf的库,而protobuf的官方手册只给出一句:

To build from source using Cygwin or MinGW, follow the Unix installation instructions, above.

这就非常尴尬,因为我不知道利用mingw来运行unix的命令。翻看了比较多的博客,stackoverflow一篇帖子刚好有解决方案,How to build Google’s protobuf in Windows using MinGW?,帖子上用的是MSYS,而由于Mingw和MSYS万年不更新,很多Cygwin新特性都没有。所以诞生了MSYS2项目,我们常用的git for windows就使用了MSYS2项目。
MSYS2不同于WSL这种提供环境,用来在windows上编译linux软件,而是用linux的指令编译原生的windows程序(native)。
这篇博客主要记录一下安装MSYS2的过程。

卸载mingw

由于我已经安装了Mingw,我不希望我有两个mingw,所以需要卸载原有的mingw,卸载方式很简单,把mingw的安装目录删除掉,并删掉设置的环境变量就行。

mingw的安装包安装mingw时有MSYS的选项(不是MSYS2)。
有两种方式得到这个Unix的命令行工具,一种是通过mingw安装包来安装msys,第二种是通过MSYS2来安装mingw。

安装MSYS2

  1. 访问MSYS2官网,下载官网首页的安装包。
    在这里插入图片描述
  2. 安装完成以后,执行下面命令,建议执行两遍,第一遍执行完会自动退出。
    或者第一遍执行pacman -Sy,第二遍执行pacman -Su

pacman 是Arch Linux 的包管理器,类似于ubuntu的apt,详细参考 pacman命令介绍。
-S是主命令,安装安装的包的作用,后面的是子命令。
-u, --sysupgrade 升级所有已安装的软件包
-y, --refresh 从服务器下载新的软件包数据库

pacman -Syu
  1. 安装需要用到的包
    利用-S命令安装所需要的包,像base-devel和mingw-w64-x86_64-toolchain都是一类包,我们可以通过序号选择。
pacman -S base-devel
pacman -S mingw-w64-x86_64-toolchain

base-devel 建议选的包是 autoconf、autogen、automake1.16、libtool、make、pkgconf等,按需选择。
输入命令序号用空格隔开即可

Enter a selection (default=all): 2 4 12 33 37 43 

在这里插入图片描述
mingw-w64-x86_64-toolchain只编译C++,没有什么fortran、objc和ada语言的需求的话,选择mingw-w64-x86_64-gcc 、mingw-w64-x86_64-gdb、mingw-w64-x86_64-make、mingw-w64-x86_64-pkgconf
在这里插入图片描述
安装完成后,我们可以看到开始菜单有4个MSYS2的快捷方式。在这里插入图片描述
这里MSYS很好的将各个编译环境隔离开,想用那个环境编译就得用对应的exe。比如想用MinGW64来编译,就必须得打开MSYSY2 MinGW 64-bit,在这个界面里make,否则会提醒没有gcc。

MSYSY2 MSYS用来管理和安装包的
MSYSY2 MinGW 32-bit编译32位程序,库链接到msvcrt上
MSYSY2 MinGW 64-bit编译64位程序,库链接到msvcrt上
MSYSY2 MSYS UCRT 64-bit编译64位程序,库链接到ucrt上

ps:ucrt,全称Universal C Runtime,通用C运行时库。
msvcrt,全称Microsoft Visual C Runtime Library,其实他和ucrt是一个东西。提供了print,malloc等基本C语言库函数的实现,只是ucrt比较新,win10版本以后作为系统组件。
知乎:msys2 mingw64、ucrt64、clang64的区别


http://chatgpt.dhexx.cn/article/QblJPQik.shtml

相关文章

【VSCode】【msys2】VS Code + msys2配置Windows下C/C++开发环境

【VSCode】【msys2】VS Code msys2配置Windows下C/C开发环境 一、Msys2配置 1. 下载msys2, 网址:https://www.msys2.org/ 2. 安装msys2-x86_64-xxxx.exe 这里没什难度,记住安装路径就好,一路next就装好了。 3. 安装gcc 3.1. 更新msys2…

Msys2记录

MSYS2 ​ MSYS2是MSYS的升级版,集成了pacman和Mingw-w64的Cygwin升级版,提供了Mingw-w64的GNU工具,包括GCC,同时移植了Arch Linux的软件包管理系统pacman,具备了Cygwin的POSIX API,理论上在Linux上的程序使…

msys2在windows10系统的安装

测试系统: windows 10 首先需要msys2的安装包,可以去官网下载安装包 官网地址: http://www.msys2.org/ 本次下载的是 msys2-x86_64-20180531.exe 注意:1.msys2不可以安装在FAT*分区    2.msys2不能安装在win XP系统上 1.双击msys2-x86_64-20180531.exe,并点击下一步选择安…

MSYS2使用教程——win10系统64位安装msys2最新版(msys2-x86_xxxx.exe)

一、安装 测试系统: windows 10 首先需要msys2的安装包,可以去官网下载安装包 官网地址: http://www.msys2.org/ 本次下载的是 msys2-x86_64-latest.exe 注意: 1. msys2不可以安装在FAT*分区 2. msys2不能安装在win XP系统上 指定好安装路径(一般D根目录即可&#…

初步使用MSYS2

在此镜像站点下载, https://mirror.tuna.tsinghua.edu.cn/help/msys2/ 根据资料, MSYS2 (Minimal SYStem 2) 是一个MSYS的独立改写版本,主要用于 shell 命令行开发环境。同时它也是一个在Cygwin (POSIX …

超详细教程:windows安装MSYS2(mingw gcc)——更新于2021.11

目录 安装 MSYS2官网:https://www.msys2.org/ 安装 下载安装程序(官网首页有):msys2-x86_64-20210725.exe 或 CSDN:https://download.csdn.net/download/ymzhu385/45988277运行安装程序。MSYS2 需要 64 位 Windows 7…

Argparse 教程

官方文档 argparse --- 命令行选项、参数和子命令解析器 — Python 3.10.2 文档 别人的笔记Argparse 教程 — Python 3.10.2 文档https://docs.python.org/zh-cn/3/howto/argparse.html#id1完整的argparse的API argparse --- 命令行选项、参数和子命令解析器 — Python 3.8…

python argparse

argparse 模块可以让人轻松编写用户友好的命令行接口。程序定义它需要的参数,然后 argparse 将弄清如何从 sys.argv 解析出那些参数。 argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。 使用argparse从命令行传入参…

python argparse type_python argparse详解

1.argparse模块作用 用于解析命令行参数 2.位置参数和可选参数 运行以下代码: import argparse parser = argparse.ArgumentParser() args = parser.parse_args() 运行结果: 参数为-h或--help时,parser.parse_args()会输出命令行的位置参数position arguments和可选参数opti…

Python3中使用argparse模块解析命令行参数

argparse是Python的一个标准模块,用于解析命令行参数,即解析sys.argv中定义的参数。实现在:https://github.com/python/cpython/blob/main/Lib/argparse.py argparse模块还会自动生成帮助和使用信息,即在最后加-h或--help。当用户…

argparse教程

argparse教程 argparse是用来干什么的?位置参数和可选参数测试argparse的功能test1test2test3test4test5-可选参数test6-action选项test7-短选项test8-同时使用位置参数和可选参数test9test10-限定参数的取值范围test11-action"count"test12-None无法和in…

argparse 模块详解

文章目录 1. argparse 模块简介2. 未使用argparse示例3. 使用argparse示例3.1 argparse简单示例3.2 argparse进阶示例3.2.1 可选参数设置3.2.2 可选参数引用名3.2.3 清除帮助中的参数名信息3.2.4 必选参数设置3.2.5 列表参数(多参数)传入设置3.2.6 互斥参…

python中的argparse基本用法

1、argparse是一个python模块,用途是:命令行选项、参数和子命令的解释。 2、使用步骤: 导入argparse模块,并创建解释器添加所需参数解析参数 3、用法示例: import argparse# 1.创建解释器 parser argparse.Argume…

argparse简介

一、argparse简介 argparse 模块是 Python 内置的用于命令项选项与参数解析的模块,argparse 模块可以让人轻松编写用户友好的命令行接口,能够帮助程序员为模型定义参数。 argparse定义四个步骤 导入argparse包 ——import argparse创建一个命令行解析…

绕过tp路由器管理密码_TP LINK路由器的登陆网址是什么?

旧版本的TP-Link路由器的登陆网址是:192.168.1.1;新版本的TP-Link路由器的登陆网址是:http://tplogin.cn;TP-Link迷你路由器的登陆网址是:192.168.1.253。接下来详细介绍: 一、旧版本的TP-Link路由器的登陆…

【TP5.1】Config的用法

需要读取某个一级配置的所有配置参数,可以使用 需要引入 use Config; 使用助手函数: config(app.name) config(app.); 这种类型的使用app. 这种类型的使用.code即可

TP LINK GRE L2TP介绍

(Virtual Private Network, 虚拟专用网络)是一个建立在公用网(通常是因特网)上的专用网络,但因为这个专用网络只是逻辑存在并没有实际物理线路,故称为虚拟专用网。 随着因特网的发展壮大,越来越多的数据需要在因特网上…

百信计算机管理员登录账号密码,tplogin.cn管理员密码是多少 | 192路由网

TP-Link TL-WR745N无线路由器配置简单,不过对于没有网络基础的用户来说,完成路由器的安装和无线网络密码和名称的设置,仍然有一定的困难,本文www.192luyou.com介绍TP-Link TL-WR745N无线路由器无线网络密码和名称的设置方法! TP-L…

Tplmap用法

Tplmap下载:安装包可查看我的下载资源页面 Python环境:2.7 (这一点很重要很重要很重要) Python所需要的包: PyYAML5.1.2 certifi2018.10.15 chardet3.0.4 idna2.8 requests2.22.0 urllib31.24.1 wsgiref0.1.2 (这些包只有在pyth…

TPlinker解读

参考: 关系抽取之TPLinker解读加源码分析 TPLinker 实体关系抽取代码解读 实体关系联合抽取:TPlinker TPLinker中文注释版 Tagging TPLinker模型需要对关系三元组(subject, relation, object)进行手动Tagging,过程分为三部分: &…