linux wordpress shell mysql 程序员 Firefox Windows centos java nginx Android 微软 Ubuntu 编程 php 云计算 google Python 开源 apache

C和C++的编译器:gcc

首先是如雷贯耳的这几位仁兄,MSVC、gcc、Cygwin、MingW(Cygwin和MingW的英文发音),另外还有些小众和新秀,像ICC(Intel C/C++ Compiler)、BCC(Borland C/C++ Compiler,快销声匿迹了)、RVCT(ARM的汇编/C/C++编译器,内置在ARM的IDE——RVDS中)、Pgi编译器……其实有一大串,我们只要熟悉常用的最强大的几款就可以了。

主流C/C++编译器|编译环境简介

MSVC

MSVC是微软Windows平台Visual Studio自带的C/C++编译器。

优点:对Windows平台支持好,编译快。

缺点:对C++的新标准支持得少。

GCC

GCC原名GNU C Compiler,后来逐渐支持更多的语言编译(C++、Fortran、Pascal、Objective-C、JAVA、Ada、Go等),所以变成了GNU Compiler Collection(GNU编译器套装),是一套由GNU工程开发的支持多种编程语言的编译器。GCC是自由软件发展过程中的著名例子,由自由软件基金会以GPL协议发布,是大多数类Unix(如Linux、BSD、Mac OS X等)的标准编译器,而且适用于Windows(借助其他移植项目实现的,比如MingW、Cygwin等)。GCC支持多种计算机体系芯片,如x86、ARM,并已移植到其他多种硬件平台。

优点:类Unix下的标准编译器,支持众多语言,支持交叉编译。

缺点:默认不支持Windows,需要第三方移植才可用于Windows。

Cygwin

Cygwin是一个Windows下Unix-like模拟环境,具体说就是Unix-like接口(OS API,命令行)重定向层,其目的是不修改软件源码仅重新编译就可以将Unix-like系统上的软件移植到Windows上(这个移植也许还算不上严格意义上的无缝移植)。始于1995年,最初作为Cygnus软件公司工程师Steve Chamberlain的一个项目。

和GCC的关系:Cygwin是让Windows拥有Unix-like环境的软件而不是编译器,GCC是安装在Cygwin上的编译器。

优点:可以比MingW移植更多的软件到Windows上,对Linux接口模拟比MingW全面。

缺点:软件运行依赖cygwin1.dll,速度受点影响。

 注意:Unix-like模拟环境不是Unix虚拟环境,很多论述中都声称Cygwin是在Windows上尽可能模拟类Unix环境,这容易造成误解,好像类Unix的elf程序可以直接运行在安装了Cygwin的Windows上一样。Cygwin和Wine的思路是不同的。在Windows+Cygwin上你可以像类Unix那样使用命令行和编程,但elf等非exe格式的程序是不能被Cygwin运行的,所以Cygwin和Unix虚拟机、Wine是完全不同的,叫Unix-like环境,模拟非虚拟,是有限的选择性的模拟,请不要误解。

延伸阅读

    评论