Gcc\MingW\Cygwin\Msys简介
一、GCC的历史
GCC是一个原本用于Unix-like系统下编程的编译器。不过,现在GCC也有了许多Win32下的移植版本。
所以,也许对于许多Windows开发者来说,GCC还是一个比较陌生的东西。
所以,我希望通过这章的叙述,让你——一个Windows开发者对GCC这一个优秀的编译器有一个大概的了解。
GCC是GNU公社的一个项目。是一个用于编程开发的自由编译器。
最初,GCC只是一个C语言编译器,他是GNU C Compiler 的英文缩写。
随着众多自由开发者的加入和GCC自身的发展,如今的GCC以经是一个包含众多语言的编译器了。
其中包括 C,C++,Ada,Object C和Java等。所以,GCC也由原来的GNU C Compiler变为GNU Compiler Collection。
也就是 GNU编译器家族 的意思。当然,如今的GCC借助于他的特性,具有了交叉编译器的功能,即在一个平台下编译另一个平台的代码。
直到现在,GCC的历史仍然在继续,他的传奇仍然被人所传颂。
二、Windows下的GCC家族
起初,GCC是用于Unix,Unix-like系统的编译器。
不过,现在Windows下也出现了GCC的稳定移植版。
这要感谢Internet上众多程序员的共同努力。
如今,在Windows下比较流行的GCC移植版主要有三个。他们是 MinGW,Cygwin和Djgpp。
虽然,Djgpp是应用于DOS系统的,考虑到windows对DOS的兼容,所以也将Djgpp纳入其中了。
总体来说,MinGW,Cygwin和Djgpp各有特色,针对不同的应用场合,可以选择不同的移植版来满足需要。
MinGW 的主要方向是让GCC的Windows移植版能使用Win32API来编程。
Cygwin 的目标是能让Unix-like下的程序代码在Windows下直接被编译。
Djgpp 则是想让DOS下也能用上GCC。
所以,对于开发人员不同的需求。选择合适的移植版会让工作变得轻松而高效。
三、分别介绍
MinGW
Minimalistic GNU for Windows。
她是一个建立在GCC和binutils 项目上的编译器系统。和其他GCC的移植版相比,她可以说是最接近Win32的一个了。
因为,MinGW几乎支持所有的Win32API,这也是MinGW的特色之一。
她所连接的程序,不需要任何第三方库就可以运行了。
在某种程度上看,MinGW更像是VC的替代品。
官网: http://www.mingw.org
Cygwin
其实并不是一个GCC。她是让Windows拥有Unix-like环境的软件。
所以,GCC自然也就会包含在里面。
不过,对于开发者,Cygwin是一个开发环境。而对于用户来说Cygwin是一个运行环境。
Cygwin唯一和MinGW最大的区别在于,使用Cygwin可以在Windows下调用Unix-like的系统函数。
比如进程函数,等等。所以,虽然说,Cygwin是运行在Windows下的,但是她还是使用的是Unix-like系统的函数和思想。
官网: http://www.cygwin.com/
MSYS
Unix-like command line utilities
包括基本的bash, make, gawk and grep 等等。通常也可以认为是小型的UNIX on Windows。提供在windows上模拟Unix环境来使用MinGW。
msys-cn :http://code.google.com/p/msys-cn/MSYS
中国发行版,用UNIX开发环境开发Windows程序。
MSYS在windows下模拟了一个类unix的终端,它只提供了MinGW的用户载入环境,在MSYS模拟的unix环境下使用MinGW,就像在Unix使用gcc一样。
Gcc\MingW\Cygwin\Msys简介的更多相关文章
- Gcc/MinGW/Cygwin/Msys 分别是什么?
一.GCC的历史 GCC是一个原本用于Unix-like系统下编程的编译器. 不过,现在GCC也有了许多Win32下的移植版本. 所以,也许对于许多Windows开发者来说,GCC还是一个比较陌生的东 ...
- MinGW和MSYS项目是在一起的(翻译官网)
翻译MinGW官网的首页,首页描述了MinGW和MSYS的基本情况. Home of the MinGW and MSYS Projects(我才知道,MinGW和MSYS项目是在一起的 -_-!) ...
- windows & gcc & mingw & mysy 编译 openssl
今天有一个项目需要使用到 https, 以前一直用的都是http请求, 用 socket() 实现 https 请求我还真是头一回遇到. 先网上搜索了一下相关资料,明白了 https 相比较 http ...
- MinGW和MSYS的自动安装 【转】
好吧,这是今天写的第二篇文章.我表示这篇才是今天的重头.(伪 半年之前曾经写过一篇关于MinGW和MSYS的手动安装的文章[1],到现在还是全站点击率最高的.(目前这篇文章是最高的.)好吧,侧面反映了 ...
- CygWin、MinGw和Msys的区别
做了6年的Windows C++,觉得已经没什么挑战力:而且Windows C++已经没落,不得不转Linux C++: 习惯了Windows的界面,习惯了傻瓜式的VS IDE,现在遇到Linux命令 ...
- 使用minGW/cygwin在Windows是用于gcc开发
刚才记录了下用eclipse在linux下开发,突然想起来也另一种方法:MinGW. MinGW是Windows的gcc开发工具,直接使用Windows的运行库,所以可以在windows下面方便的用g ...
- c语言GCC mingw 64位安装
1.安装步骤和下载地址 一.MinGW简介 MinGW是是将GCC编译器和GNU Binutils移植到Win32平台下的产物,包括一系列头文件(Win32API).库和可执行文件.MinGW是从Cy ...
- minGW cygwin gnuwin32
首先,三个的官方网站分别是: minGW:http://www.mingw.org cygwin: http://www.cygwin.com gnuwin32: https://sourcefo ...
- windows下使用mingw和msys编译GOTOBLAS和OpenBLAS
在windows下利用msys编译openBLAS若遇到错误提示: gcc: CreateProcess : No such file or directory 问题原因参考:http://www.c ...
随机推荐
- Foreda8上安装Ant1.9.2
Ant在Win上安装很简单,解压拷贝+设置Ant_Home,在Linux上差不多也是这两步. 首先下载apache-ant-1.9.2-bin.tar.gz. 然后解压tar xvzf apache- ...
- 【Window OS】”对于目标文件系统,文件XXXXX过大“导致无法进行文件操作的解决方法
问题原因:这是目标文件系统不支持这么大的文件的操作问题.例如:目标文件系统的格式是FAT32,FAT32最大支持4G,如果你要进行发送或粘贴4G以上的文件就会出现这个问题. 解决办法:把目标文件系统的 ...
- ACM-尼姆博弈之取(m堆)石子游戏——hdu2176
取(m堆)石子游戏 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- ArcGIS安装问题集锦
1. 软件安装 软件下载.安装问题自行解决,否则就不要使用. 2. 常见问题 2.1 许可管理器版本不正确 2013年3月19日 问题一:ArcGIS10安装后,更改许可管理器时,通常,在ArcGIS ...
- WPF 同一个程序 只允许 同时运行一个
方法2 当程序已经运行了 再运行这个程序时,则显示当前这个窗体 http://code.3rbang.com/cshape-run-one/ VS2013附件:http://fil ...
- Struts2(一)
一.Struts下载地址 http://struts.apache.org/download.cgi 二.导入包.配置Web.xml和struts.xml 在下载的包中从示例中找到一些包就可以 str ...
- VB总结2——内部函数
VB中内部函数大概有120多个,但是对于我们来说常用的不多,对于那些不常用用的时候再查 常用的内部函数大体可以分为六类: 数学函数,随即函数,字符串函数,数据类型转换函数,日期时间函数,格式输出函数等 ...
- ORA-01109:数据库未打开(解决)
SQL> startup mountORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它SQL> shutdown immediateORA-01109: 数据库未打开 ...
- JDK1.7的一些新特性
整理了几条对开发可能用到概率高的 1.swicth支持对String的判断:(以前只能支持Int及以下的) switch (s) { case "1": break; case & ...
- 细说HTML元素的隐藏和显示
CSS文档对HTML的显示和隐藏有2个属性可供选择: 1.display 2.visiblity 这2个有什么区别呢? display: display版本:CSS1/CSS2 兼容性:IE4+ NS ...