文章目录

  • 前言
  • 卸载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. UI设计培训分享:UI设计师如何准备面试?
  2. 32位oracle_Oracle 之Hugepage
  3. Entity Framework Code First添加修改及删除单独实体
  4. java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
  5. 问题 | 基于神经网络的高考、中考、考研试题预测
  6. 1月24日学习内容整理:Django的admin组件源码分析及流程
  7. when is SAP UI5 formatter called
  8. Android Studio使用心得
  9. php页面不断弹出值_电脑自动弹出网页怎么办
  10. BZOJ1023 [SHOI2008]cactus仙人掌图
  11. 问题通用解决方法探索
  12. Qemu 简述 | 转
  13. E. Sergey and Subway
  14. elementUI 学习入门之 Button 按钮
  15. 互联网搜索的哪些环节 机器学习_机器学习、深度学习以及强化学习在金融领域有哪些应用?...
  16. linux设置ipsan_linux下ipsan的配置
  17. 视频+案例 | 钟南山院士谈5G医疗
  18. padavan固件获取网络地图中的客户端状态
  19. MediaRecorder单独录制影像,不录制音频
  20. JAVA IO ---------- File类(转自 skywang12345)

热门文章

  1. matlab与simulink结合,code-matlab 利用SIMULINK和M函数相结合的方式仿真BFSK 调制在 联合开发网 - pudn.com...
  2. Pandas项目实战1——好莱坞百万级电影评论数据分析
  3. torch-sparse安装教程
  4. 强化学习算法A2C(Advantage Actor-Critic)和A3C(Asynchronous Advantage Actor-Critic)算法详解以及A2C的Pytorch实现
  5. 神经网络之反向传播算法(均方根反向传播算法RMSProp)
  6. 使用jstack查看线程
  7. GRE词汇意群法速记
  8. [小程序]两数比较(5种写法)
  9. 网络基础之计算机网络参考模型(OSI参考模型与TCP/IP协议簇)
  10. 关于Uncaught TypeError (Cannot read property ..undefined)的解决办法