类MinGW环境有哪些
MinGW:是Minimalist GNU for Windows的缩写,是让windows开发者可以使用GNU工具链和一些类库,同时也支持win32的api,它编译出来的程序不一定是跨平台的。它有MinGW32和MinGW64两个版本,对应开发32位和64位程序。为了更方便的使用MinGW,就产生了一个叫MSys工具,是一个类Unix命令行环境。由于MSys开发太慢,又搞了MSys2工具,同时还解决了包管理问题,方法是继承了Arch Linux的包管理系统pacman。
Cygwin:是提供了完整的类Unix环境,是让windows开发者在开发软件的时候,感觉是在Unix环境下。用它开发出来的程序既可以运行在windows也可以用在unix,但需要重新编译。在windows上运行的时候依赖cygwin1.dll库,它提供了在windows上posix接口。
安装MinGW环境
先安装MSys2,下载地址为http://sourceforge.net/projects/msys2,安装的时候路径不要有空格。
安装过程很简单,根据提示安装即可
安装完后,需要用包管理工具更新系统,首先了解下pacman的命令
常用命令:如下。更多命令)
1 | pacman -S package_name #安装软件包 |
更新过程:运行msys2_shell.bat,启动MSys2命令行窗口
1 | # 升级系统中的所有包 |
如果更新太慢,把软件源换到国内,修改/etc/pacman.d/中有三个mirrorlist文件,分别为mingw32,mingw64以及msys的源,具体配置如下:
1 | ## |
- 查看软件包:
MSys2包含了哪些软件包:https://github.com/Alexpux/MSYS2-packages
MinGW-64包含了哪些软件包:https://github.com/Alexpux/MINGW-packages
- 安装一些必要的软件包,看个人需要。另外因为我用的是64位系统,且编译的程序也是64位的,所以尽量安装mingw-w64的包。
1 | pacman -S autoconf |
使用MinGW环境
尽量使用MinGW工具,而不安装windows工具。如
- cmake
- make
- lua/luajit
- doxygen
- graphviz
Git是例外,因为在git目录下,使用自己安装的MinGW显示Git状态速度特别慢,而用Git自带的MinGW则非常快。测试函数如下
1 | # 这两个是跟显示Git状态相关的脚步,具体内容google |
- 所以一般情况下,不用自己安装的MinGW,而是使用Git自带的MinGW。这样一来,又解决另外一个问题
- 命令行工具问题,原因是
- windows的cmd不是很好用
- 像cmder的工具总是有这样那样的bug
- 工具链够全,且容易扩展,在windows的PATH中添加“C:\msys64\mingw64\bin”目录
- 命令行工具问题,原因是
- 需要包管理的时候,还是使用msys2_shell.bat,但建议使用快捷方式,加以下参数
1 | -use-full-path # 使用windows的PATH全路径 |
- 改进Git自带的MinGW,看着更加舒适些。它是使用mintty作为终端模拟的,在“~目录”下加“.minttyrc”文件,内容如下
1 | BoldAsFont=-1 |