首先是MSVC、GCC、Cygwin、MingW(Cygwin和MingW的英文发音),另外还有些小众的编译器像ICC(Intel C/C Compiler)、BCC(Borland C/C Compiler,快销声匿迹了)、RVCT(ARM的汇编/C/C 编译器,内置在ARM的IDE——RVDS中)、Pgi编译器……其实有一大串,我们只要熟悉常用的最强大的几款就可以了。
MSVCMSVC是微软Windows平台Visual Studio自带的C/C 编译器。
优点:对Windows平台支持好,编译快。
缺点:对C 的新标准支持得少。
GCCGCC原名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。
CygwinCygwin是一个Windows下Unix-like模拟环境,具体说就是Unix-like接口(OS API,命令行)重定向层,其目的是不修改软件源码仅重新编译就可以将Unix-like系统上的软件移植到Windows上(这个移植也许还算不上严格意义上的无缝移植)。始于1995年,最初作为Cygnus软件公司工程师Steve Chamberlain的一个项目。
优点:可以比MingW移植更多的软件到Windows上,对Linux接口模拟比MingW全面。
缺点:软件运行依赖cygwin1.dll,速度受点影响。
MingWMingW(Minimalist GNU on Windows)是一个Linux/Windows下的可以把软件源码中Unix-like OS API调用通过头文件翻译替换成相应的Windows API调用的编译环境,其目的和Cygwin相同。从而把Linux上的软件在不修改源码的情况下编译为可直接在Win下执行的exe。
优点:在Win下可以和Linux一样的方式编译C/C 源码,可以说是Win版的GCC,其生产的Windows PE程序相比Cygwin不依赖任何第三方库,比Cygwin纯粹,理论上也更快速。
缺点:编译速度、编译出的程序在算法上可能都比MSVC慢。
尾言最后大家的学习或者开发使用的IDE 是什么呢?不妨评论区交流下?
C语言51课视频教程专栏教程《C语言51课视频教程合集》链接:
C语言深入学习视频教程《C语言数据结构那点事儿》链接:
C 45课视频教程专栏教程《C 45课视频教程》链接:
,