文章目录

  • 前言
  • 卸载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的区别

用MSYS2安装mingw相关推荐

  1. msys2安装mingw开发环境

    打开"MSYS2 MSYS"进行通用配置 1.设置镜像(msys2 | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror) s ...

  2. 【MSYS2】Windows 无MSVC 安装 MinGW Clang

    要点 Windows 通过MSYS2安装Clang Clangd Clang不使用MSVC MinGW Clang mingw clang 一.安装MSYS2 下载MSYS2安装包,如msys2-x8 ...

  3. 安装mingw+Theano+keras(多警告、错误解决办法)

    安装mingw+Theano+keras 一.关于深度学习框架TensorFlow.Theano 和 Keras 二.可以安装theano.keras的python版本 三.安装mingw+Thean ...

  4. msys2及MinGW工具使用学习笔记

    1.msys2是什么? MSYS2提供了Windows下的bash shell等linux环境.版本控制软件git.软件包管理系统Pacman和MinGW-w64工具链.主要用于 shell 命令行开 ...

  5. 【C 语言】Windows 下使用 gcc 编译器 ( 常用的编译器 | Qt 中的 gcc 编译器 | 独立安装 MinGW )

    文章目录 一.常用的编译器 二.使用 Qt 中的 gcc 编译器 三.独立安装 MinGW 一.常用的编译器 常用编译器 : MSVC GCC MinGW CLANG ; MSVC : 微软 Micr ...

  6. 给Eclipse安装MinGW

    @2019-06-30 [小记] 安装完Eclipse后Toolchains只有Cross GCC,下载安装MinGW后添加系统环境变量即可 转载于:https://www.cnblogs.com/s ...

  7. 安装MinGW和MSYS

    今天和一位朋友聊天,了解到他现在win平台用eclipse来学习编程,于是我也打算安装一个试 试.google了之后发现在win平台上用eclipse开发c/c++程序需要c/c++编译器,而一般大家 ...

  8. 安装MinGW win安装gcc

    安装MinGW win安装gcc 1. 安装winGW: 2. 测试gcc安装结果: 3.MinGW-w64下安装报错the file has been downloaded incorrectly ...

  9. 两种安装MinGW的方法

    MinGW 的全称是:Minimalist GNU on Windows .它实际上是将经典的开源 C语言 编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API ,因此可以将 ...

最新文章

  1. mysql索引详细介绍简书_MySql索引详解
  2. rabitMQ优缺点
  3. 四元数姿态解算及多传感器融合详细解析
  4. POJ 3041 Asteroids (对偶性,二分图匹配)
  5. 用户权限管理——DB设计篇
  6. DDD(领域驱动设计)系列之二-应用架构
  7. mybatis-01
  8. ModBus TCP/IP协议
  9. LocED-Location-aware Energy Disggregation Framework
  10. G002-186-17
  11. Vscode新建文件输入感叹号不能生成头文件
  12. 【以太网交换安全】---端口安全及MAC地址飘移防止与检测
  13. 《偏生要鲜花着景,应这急景流年》
  14. 游戏资讯:预计在10月底至11月内, 版号审批将会恢复
  15. win7 下MCR的安装以及环境变量配置
  16. mysql5.7对应jdbc驱动版本_mysql5.7.11对应的JDBC驱动是哪个版本
  17. div适应屏幕垂直居中的多种解决方案
  18. c语言stdlib h常用函数,c语言中,头文件stdlib.h主要包含什么函数?
  19. C++里的调用cmd命令的方法
  20. 一文详解私募基金投资策略(8大类17小类)

热门文章

  1. 在HTML中添加视频的代码
  2. 创业公司的的股权安排
  3. 【ALSA】关于alsa的总结
  4. geoip php 获取城市,Laravel 中利用 GeoIP 获取用户地理位置信息
  5. C语言-1(第一天学C语言)
  6. nokogiri 足球比赛数据
  7. 常数变易法_打印图形
  8. 【爬虫小白】各种请求使用代理的方法
  9. 盘点 深度学习妖怪 之 激活函数妖
  10. STM32F4的DSP库