用MSYS2安装mingw
文章目录
- 前言
- 卸载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
- 访问MSYS2官网,下载官网首页的安装包。
- 安装完成以后,执行下面命令,建议执行两遍,第一遍执行完会自动退出。
或者第一遍执行pacman -Sy
,第二遍执行pacman -Su
。
pacman 是Arch Linux 的包管理器,类似于ubuntu的apt,详细参考 pacman命令介绍。
-S是主命令,安装安装的包的作用,后面的是子命令。
-u, --sysupgrade 升级所有已安装的软件包
-y, --refresh 从服务器下载新的软件包数据库
pacman -Syu
- 安装需要用到的包
利用-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相关推荐
- msys2安装mingw开发环境
打开"MSYS2 MSYS"进行通用配置 1.设置镜像(msys2 | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror) s ...
- 【MSYS2】Windows 无MSVC 安装 MinGW Clang
要点 Windows 通过MSYS2安装Clang Clangd Clang不使用MSVC MinGW Clang mingw clang 一.安装MSYS2 下载MSYS2安装包,如msys2-x8 ...
- 安装mingw+Theano+keras(多警告、错误解决办法)
安装mingw+Theano+keras 一.关于深度学习框架TensorFlow.Theano 和 Keras 二.可以安装theano.keras的python版本 三.安装mingw+Thean ...
- msys2及MinGW工具使用学习笔记
1.msys2是什么? MSYS2提供了Windows下的bash shell等linux环境.版本控制软件git.软件包管理系统Pacman和MinGW-w64工具链.主要用于 shell 命令行开 ...
- 【C 语言】Windows 下使用 gcc 编译器 ( 常用的编译器 | Qt 中的 gcc 编译器 | 独立安装 MinGW )
文章目录 一.常用的编译器 二.使用 Qt 中的 gcc 编译器 三.独立安装 MinGW 一.常用的编译器 常用编译器 : MSVC GCC MinGW CLANG ; MSVC : 微软 Micr ...
- 给Eclipse安装MinGW
@2019-06-30 [小记] 安装完Eclipse后Toolchains只有Cross GCC,下载安装MinGW后添加系统环境变量即可 转载于:https://www.cnblogs.com/s ...
- 安装MinGW和MSYS
今天和一位朋友聊天,了解到他现在win平台用eclipse来学习编程,于是我也打算安装一个试 试.google了之后发现在win平台上用eclipse开发c/c++程序需要c/c++编译器,而一般大家 ...
- 安装MinGW win安装gcc
安装MinGW win安装gcc 1. 安装winGW: 2. 测试gcc安装结果: 3.MinGW-w64下安装报错the file has been downloaded incorrectly ...
- 两种安装MinGW的方法
MinGW 的全称是:Minimalist GNU on Windows .它实际上是将经典的开源 C语言 编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API ,因此可以将 ...
最新文章
- UI设计培训分享:UI设计师如何准备面试?
- 32位oracle_Oracle 之Hugepage
- Entity Framework Code First添加修改及删除单独实体
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
- 问题 | 基于神经网络的高考、中考、考研试题预测
- 1月24日学习内容整理:Django的admin组件源码分析及流程
- when is SAP UI5 formatter called
- Android Studio使用心得
- php页面不断弹出值_电脑自动弹出网页怎么办
- BZOJ1023 [SHOI2008]cactus仙人掌图
- 问题通用解决方法探索
- Qemu 简述 | 转
- E. Sergey and Subway
- elementUI 学习入门之 Button 按钮
- 互联网搜索的哪些环节 机器学习_机器学习、深度学习以及强化学习在金融领域有哪些应用?...
- linux设置ipsan_linux下ipsan的配置
- 视频+案例 | 钟南山院士谈5G医疗
- padavan固件获取网络地图中的客户端状态
- MediaRecorder单独录制影像,不录制音频
- JAVA IO ---------- File类(转自 skywang12345)
热门文章
- matlab与simulink结合,code-matlab 利用SIMULINK和M函数相结合的方式仿真BFSK 调制在 联合开发网 - pudn.com...
- Pandas项目实战1——好莱坞百万级电影评论数据分析
- torch-sparse安装教程
- 强化学习算法A2C(Advantage Actor-Critic)和A3C(Asynchronous Advantage Actor-Critic)算法详解以及A2C的Pytorch实现
- 神经网络之反向传播算法(均方根反向传播算法RMSProp)
- 使用jstack查看线程
- GRE词汇意群法速记
- [小程序]两数比较(5种写法)
- 网络基础之计算机网络参考模型(OSI参考模型与TCP/IP协议簇)
- 关于Uncaught TypeError (Cannot read property ..undefined)的解决办法