之前的博文中有不少涉及到win下使用unix环境的一些东西,但都是为了做别的事情,还是写一个专门讲这个主题的文章吧。

主角:Cygwin、mingw-W64、MSYS2。

注:mingw已经停止更新很多年了,不再讨论,mingw-w64是专门替代的。个人最喜欢用MSYS2,因为可以使用pacman包管理器。

一、这些东东有什么用?

都是在windows系统中构建unix环境的一些工具,这样就可以在Windows下使用一些unix上面的软件。

二、这些工具之间的区别与联系是什么?

有两个地方对这个问题探究的很深入我就不赘述了

1、https://www.biaodianfu.com/cygwin-ming-msys.html

2、https://www.zhihu.com/question/22137175

建议好好看,多看几遍。

如果看了上面的回答,那么就很容易理解了,你想在windows下使用gcc、gdb、emacs等等unix原生的东西,就需要在win下安装这几个工具中的一个来实现。

三、怎么安装这些工具?

Cygwin

官网:https://cygwin.com/

之前做Windows XP上装SSH的时候详细介绍过:http://www.cnblogs.com/feipeng8848/p/8555648.html

mingw-W64

官网:http://mingw-w64.org/doku.php

这个连接直接下载压缩包。也可使用在线安装器,但是速度很慢,我就直接下载的压缩包。



得到安装包后解压缩,然后我放置到了 “C:\Program Files\mingw-w64\” 目录下,mingw-w64是手动创建的,然后再添加环境变量



上图中的完整路径是:C:\Program Files\mingw-w64\x86_64-8.1.0-release-posix-seh-rt_v6-rev0\mingw64\bin

然后再powershell(或者cmd)中输入 “gcc -v” 就能看见gcc版本号了,说明安装成功。

MSYS2

官网:http://www.msys2.org/

官网首页就是安装教程,非常详细就不做介绍了。装完后别忘记配置环境变量以在cmd或者powershell中直接使用。

安装完之后更换源会提高安装软件的速度,详情看:https://www.cnblogs.com/feipeng8848/p/10037962.html

四、应用场景举例

比如使用vscode调试C语言。就要用到gcc、gdb。可以选择使用Cygwin、mingw-w64、MSYS2这三个工具中的任何一个来安装gcc、gdb,然后配置下环境变量就可以用。

mingw-64

安装完mingw-w64(其实就是解压压缩包)bin目录下就有gcc、gdb。

Cygwin

在安装界面中选中gcc、gdb安装,不要忘记选择gcc的依赖,这就有点麻烦,可能多选少选。

MSYS2

先搜索

pacman -Ss gcc



然后找到完整的名字后安装:

pacman -S  mingw-w64-x86_64-gcc

非常喜欢这个pacman命令的方式。

最新文章

  1. [原创] Go语言在Centos上的部署
  2. 小菜学Chromium之OpenGL学习之二
  3. hadoop之根据Rowkey从HBase中查询数据
  4. 。。。contentType与pageEncoding的区别。。。
  5. block iOS 块
  6. 关于dom ready事件
  7. js节点问题
  8. windows下修改mysql用户名和密码
  9. Spark作业调度
  10. firefox chrome强制指定网址使用https
  11. asp.net动态添加GridView的模板列,并获取列值
  12. 修改cas登陆页面-服务器端
  13. POJ 2230 (欧拉路)
  14. 监控工具zabbix
  15. JQuery(上)
  16. java设计模式之八代理模式(Proxy)
  17. HDU1829(种类并查集)
  18. 剑指offer-机器人的运动范围
  19. (二)获取Access_token
  20. Android Tools 开发工具库开源项目总结

热门文章

  1. HTML-CSS线性渐变
  2. Self hosted OWIN 绑定地址127.0.0.1,外网无法访问
  3. Unity shader学习之Forward Rendering Path
  4. 清华操作系统实验--80x86汇编基础
  5. eclipse设置字体_字符编码_快捷键
  6. Windows server 2008 R2实现多用户远程连接 (转)
  7. lua元表学习
  8. 【2017-2-19】C#数据类型,数据转换,变量,常量,转义符
  9. httpclient get post
  10. <转>jmeter(六)元件的作用域与执行顺序