C语言作为“万物的始祖”,所有刚接触的小伙伴都在使用C语言,然而不胜枚举的C语言编译器让人眼花缭乱,VScode、GCC、TCC……那么到底哪些C语言编译器是大佬们用的最多的?又有哪些C语言编译器是兼容性最强的呢?到底谁才是编译之王?接下来本网给您推荐以下几个C编译器:

一、官方权威的Microsoft Visual Studio (VScode)


最官方、最权威、兼容性最强、版本更新最前卫的老牌C编译器。Visual Studio(VS,又称VScode) 是一套非常完备的工具和服务,可帮助您为 Microsoft 平台和其他平台创建各种各样的应用程序。Visual Studio 还可将您所有的项目、团队和利益干系人联系在一起。现在您的团队可以从任何位置以虚拟方式进行更为敏捷的合作,无论他们采用何种开发工具。现在甚至更新到了Visual Studio 2019 的最新版本。

功能介绍

可以通过强大的集成开发环境构建面向 Windows、Android、iOS 以及 Web 的出色应用。

使用任何 IDE 或编辑器在云中进行版本控制、敏捷、持续交付、应用程序分析协作。

适用于所有操作系统的编辑器使用可在 Windows、OS X 或 Linux 上运行的免费代码编辑器构建和调试现代 Web 和云应用程序。

二、Linux自带光环下的GCC编译器


如果你使用的是Linux系统,那么恭喜你,你可以直接使用自带的编译器。GCC 编译器是 Linux 下默认的 C/C++ 编译器,大部分 Linux 发行版中都是默认安装的。GCC 编译器通常以 Linux 命令的形式在终端(Shell)中使用,它有很多选项,这是我们要重点学习的。

GCC 原来代表“GNU C Compiler”的意思。自从面世后,GCC 逐渐扩充、发展,现在不仅仅支持C语言,还支持其他很多语言,包括 C++、Ada、Objective-C、Fortran 和 Java 等。因此,GCC 的意思被重新定义为“GNU Compiler Collection”,也即“GUN 编译器套件”。

GUN 编译器套件包含多种前端处理器,以翻译各种不同语言。当然,在本教程中我们重点讨论的是基于C语言的前端处理器 GCC。

GCC 也是一种多目标(multitarget)编译器;换句话说,它通过使用可互换的后端处理器,为多种不同的计算机架构生成相应的可执行程序。

正如模块化概念所提倡的,GCC 可被用作交互式编译器;也就是说,可以使用 GCC 对所有设备与操作系统创建可执行程序,不需要局限于仅仅是运行 GCC 的平台。然而,这么做需要特殊的配置和安装,大多数 GCC 的安装,仅能针对它们的宿主系统编译程序。

三、不用Linux的Cygwin


Cygwin是一个用于在Windows上模拟Linux环境的软件。它可以作为那些虚拟机软件的一个部分替代品。

运行Cygwin后,你会得到一个类似Linux的Shell环境,在其中你可以使用绝大部分Linux软件和功能。如Gcc,Make,Vim,Emacs等等。总之如果你想使用某个Linux下的功能,而windows上又找不到好的替代品的话,你就可以用Cygwin。我使用的最频繁的是Gcc和Make。我经常用它们来编译一些我从网上下载的开源的工程。这些工程在Windows上编译往往很麻烦。我也用它做过X Server来连接一台真正的Linux服务器,用来测试一个用tcl/tk编写的跨平台的用户界面程序。

Cygwin包括了一套库,该库在Win32系统下实现了POSIX系统调用的API;还有一套GNU开发工具集(比如GCC、GDB),这样可以进行简单的软件开发;还有一些UNIX系统下的常见程序。2001年,新增了X Window System。

另外还有一个名为MinGW的库,可以跟Windows本地的MSVCRT库(Windows API)一起工作。MinGW占用内存、硬盘空间都比较少,能够链接到任意软件,但它对POSIX规范的实现没有Cygwin库完备。

MinGW是Minimalist GNU on Windows的简称,是指只用自由软件来生成纯粹的Win32可执行文件的编译环境。一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行库。实际上MinGW 并不是一个C/C++ 编译器,而是一套GNU工具集合。除开GCC (GNU 编译器集合) 以外,MinGW 还包含有一些其他的GNU 程序开发工具 (比如gawk bison 等等)。

它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方C运行时(C Runtime)库。MinGW 是一组包含文件和端口库,其功能是允许控制台模式的程序使用微软的标准C运行时(C Runtime)库(MSVCRT.DLL),该库在所有的 NT OS 上有效,在所有的 Windows 95发行版以上的 Windows OS 有效,使用基本运行时,你可以使用 GCC 写控制台模式的符合美国标准化组织(ANSI)程序,可以使用微软提供的 C 运行时(C Runtime)扩展,与基本运行时相结合,就可以有充分的权利既使用 CRT(C Runtime)又使用 WindowsAPI功能。

开发 MinGW 是为了那些不喜欢工作在 Linux(FreeBSD) 操作系统而留在Windows 的人提供一套符合GNU 的工作环境。总体说来,使用MinGW 就是GNU。

但糟糕的是,Cygwin不支持Unicode。实际上,除了当前Windows系统以及OEM codepages(例如,一个俄语用户,他的代码页是CP1251和CP866,而不能是KOI8-R、ISO/IEC 8859-5、UTF-8等),Cygwin对其他字符集都不支持。Cygwin 的较新版本可以通过自带终端模拟器的设置来满足显示 UTF-8 和更多代码页的功能。

Red Hat 规定,Cygwin 库遵守 GNU General Public License,但也可以跟符合开源定义的自由软件链接。Red Hat 另有价格不菲的许可协议,这样使用 Cygwin 库的专属软件,就可以进行再发布。

四、小巧速度快的TCC编译器


tcc是一个极小的C语言编译器(Tiny C Compiler),由于win下没有自带gcc编译器,tcc是一个很好的选择,具有小巧、速度快、自动编译链接的特点。

可以在任何地方编译和执行C代码,而其编译,组装和链接比GCC 快几倍。任何C动态库都可以直接使用。TCC正在全面遵守ISOC99标准。TCC当然可以编译自己。tcc包括一个可选的内存和绑定检查器。绑定的检查代码可以与标准代码自由混合。

另外,还可以直接编译和执行C源代码。无需链接或组装。包括完整的C预处理器和类似GNU的汇编程序。支持C脚本:只需在C源代码的第一行添加“#!/ usr / local / bin / tcc -run”,然后直接从命令行执行。使用libtcc,可以使用TCC作为动态代码生成的后端。

五、开放源代码的eclipse


这个平台虽然是基于Java的集成开发环境,但是其实这平台作为C语言编译器依然也是它自身的目标。

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

虽然大多数用户很乐于将 Eclipse 当作 Java 集成开发环境(IDE)来使用,但 Eclipse 的目标却不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。

这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用Java语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如C/C++、COBOL、PHP、Android等编程语言的插件已经可用,或预计将会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。

基于 Eclipse 的应用程序的一个突出例子是 IBM Rational Software Architect,它构成了 IBM Java 开发工具系列的基础。

Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(Eclipse Foundation)管理。2003年,Eclipse 3.0选择OSGi服务平台规范为运行时架构。2007年6月,稳定版3.3发布;2008年6月发布代号为Ganymede的3.4版;2009年6月发布代号为Galileo的3.5版;2010年6月发布代号为Helios的3.6版;2011年6月发布代号为Indigo的3.7版;2012年6月发布代号为Juno的4.2版;2013年6月发布代号为Kepler的4.3版;2014年6月发布代号为Luna的4.4版;2015年6月项目发布代号为Mars的4.5版。

六、初学者必备的轻量级Dev-C++


Dev-C++是一个Windows环境下的一个适合于初学者使用的轻量级 C/C++ 集成开发环境(IDE)。它是一款自由软件,遵守GPL许可协议分发源代码。它集合了MinGW中的GCC编译器、GDB调试器和 AStyle格式整理器等众多自由软件。原开发公司 Bloodshed 在开发完 4.9.9.2 后停止开发,所以现在由 Orwell 公司继续更新开发,最新版本是5.11。

它包括多页面窗口、工程编辑器,在工程编辑器中集合了编辑器、编译器、连接程序和执行程序。它也提供高亮度语法显示的,以减少编辑错误。Dev-C++是一个Windows下的C和C++程序的集成开发环境。

它使用MingW32/GCC编译器,遵循C/C++标准。开发环境包括多页面窗口、工程编辑器以及调试器等,在工程编辑器中集合了编辑器、编译器、连接程序和执行程序,提供高亮度语法显示的,以减少编辑错误,还有完善的调试功能,能够适合初学者与编程高手的不同需求,是学习C或C++的首选开发工具!

七、初学者的另一个福音WIN-TC


初学C的一款比较好的软件,也是学习C的一款比较官方标准的软件

WIN-TC是一个turbo C2 WINDOWS平台开发工具,最大特点是支持中文界面,支持鼠标操作,程序段复制,为初学c语言、对高等编程环境不熟悉的同志们非常有帮助

该软件使用turbo C2为内核,提供WINDOWS平台的开发界面,因此也就支持WINDOWS平台下的功能,例如剪切、复制、粘贴和查找替换等。而且在功能上也有它的独特特色例如语法加亮、C内嵌汇编、自定义扩展库的支持等。并提供一组相关辅助工具令你在编程过程中更加游刃有余,如虎添翼。

WIN-TC简繁双语版可以正常运行于98及其以上的简体及繁体WINDOWS操作系统上

八、拥有古老历史的TurboC


“TurboC/C++v3.0中文版”是为了照顾不熟悉DOS环境软件操作的广大初学者,让大家能在Windows环境下方便地安装和使用中文TurboC/C++3.0,对界面进行了汉化,并且为其完善了Windows以及中文DOS下的运行环境,经过重新包装后推荐给学习《C语言程序设计》与《C++面向对象程序设计》的广大师生。用户并不需要熟悉DOS知识,只需要在安装时将TurboC/C++v3.0指定安装在任意文件夹,再不需要手动更改任何选项,就能够正常编译程序。

主要功能

1、为了照顾不熟悉DOS环境软件操作的广大初学者,让大家能在Windows环境下方便地安装TurboC/C++v3.0,本安装程序可以将TurboC/C++v3.0安装在任意指定目录,无需修改Options菜单里的Directory选项,即可正常编译标准C和C++程序!

2、“〖程序设计〗TurboC&C++v3.0配置工具”菜单中,建立了修改当前编译语法的快捷方式,您选择C或C++编译方式后再重新打开TurboC&C++3.0即可;

3、安装程序将在开始菜单上建立“〖程序设计〗TurboC&C++v3.0”菜单,并建立启动TurboC++的快捷方式和配置卸载工具,还有其它相关的一些快捷方式;

4、您建立的C/C++程序文件将保存在“安装目录TCPPProject”目录下,开始菜单上会建立“我的Project目录”的快捷方式,令您保存更方便;

5、程序输出的.OBJ和.exe文件将保存在“安装目录TCPPOutput”目录下,开始菜单上会建立“输出文件Output目录”的快捷方式,令您管理更方便;

“乱花渐欲迷人眼”的C编译器有轻量级的,有重磅的,有全平台加持光环的,究竟哪一款C编译器是你心中的“编译之王”?

乱花渐欲迷人眼的C编译器中,谁才是“编译之王”?相关推荐

  1. 乱花渐欲迷人眼:浅谈关于分布式存储的五大 “谎言”

    申耀的科技观察 读懂科技,赢取未来! 要说近几年存储这条街最靓的仔,莫过于分布式存储了. 自诞生以来,分布式存储就被视为存储的未来,被万众期待.然而分布式存储起步于寒门,最早应用于互联网日志.企业备份 ...

  2. 计算机科学选AP课,乱花渐欲迷人眼,AP课程如何选 之 理科

    美国高中AP课程有22个门类.37个学科,AP 考试的成绩为5分制,考生可以获得1,2,3,4或5分.一般3分或3分以上的成绩可以在大学换取学分,但有些名牌大学接受的标准在4分以上或者5分,还有的大学 ...

  3. Web3中文|乱花渐欲meme人眼,BRC-20总市值逼近10亿美元

    现在的Web3加密市场,用"乱花渐欲meme人眼"来形容再合适不过了. 何为meme? "meme"这个词大概很多人都不知道如何正确发音,并且一看到它就会和狗狗 ...

  4. 乱花渐欲迷人眼-杜绝设计的视噪

    视噪,又称视觉噪音.我们每天接受来自外界的大量信息,这些信息有将近70%是通过视觉感知获得的.视噪会干扰我们对信息的判断,影响到产品的易用性和可用性,与用户体验的好坏息息相关. (克劳德香农图演示了噪 ...

  5. 投影仪幕布增益_钱别瞎乱花 家用投影幕布应该怎么选?

    1白幕灰幕应该怎么选 对于投影机幕布很多人都没有深刻了解,家用投影环境该选择什么幕布呢?目前国内投影机幕布的市场情况又是怎么样的?今天我们就来分析这个问题.首先我们我们得分的清投影机幕布种类.目前从颜 ...

  6. 电脑花屏是怎么回事(使用过程中出现花屏,该如何处理?)

    电脑花屏是怎么回事(使用过程中出现花屏,该如何处理?) 在电脑使用的过程中,会遇上各种各样的问题,往往不知道如何来处理,也不敢乱动手,今天我们就来说说:在电脑开机时出现花屏或者在使用过程中出现花屏,我 ...

  7. 编写一个扑克类(每张扑克有花色和数值,例如红心A,草花10),将52张扑克牌放到集合中(自己去选择集合类)

    编写一个扑克类(每张扑克有花色和数值,例如红心A,草花10,将52张扑克牌放到集合中自己去选择集合类 题目描述 代码 题目描述 编写3个方法 方法1.将集合中的所有扑克重新洗牌,并将扑克输出(打印出来 ...

  8. 病毒乱花迷人眼,勿把“VX”当“全信”

    VX被国内某安全团队爆出,在PC版客户端中捕获到一个高危等级漏洞.建议3.2.1.141版本以下的用户立即更新! 黑客只需要通过VX发送一个特制web链接,当用户点击链接后,wechatweb.exe ...

  9. 花花世界迷人眼,没有实力别赛脸,做Python实力派(万字精华,初学者,收藏必备!!!)

    Python:Python学习总结 背景 PHP的$和->让人输入的手疼(PHP确实非常简洁和强大,适合WEB编程),Ruby的#.@.@@也好不到哪里(OO人员最该学习的一门语言). Pyth ...

最新文章

  1. 润飞rf1800支持解密吗_《密逃2》新一期来袭:还是你期待的样子吗?
  2. python多线程爬取斗图啦数据
  3. [Unity] 3D数学基础 - 坐标系、向量、矩阵
  4. Java正则表达式简单用法
  5. java web ssh jar_java web 汽车美容管理系统 ssh 毕设作品
  6. 计算机视觉——主干网络的学习笔记
  7. android bool转字符串,Android 知识点——当json传入字符串,使用Boolean接收时,GSON会将其转换为false...
  8. 电力系统自动化远程监控方案
  9. 两台计算机如何打印机共享打印机,两台计算机如何共享一个打印机?
  10. 高新计算机考试培训 ppt,全国计算机高新技术考试.ppt
  11. 厦门大学国家奖学金答辩PPT模板
  12. Java基础——分隔符
  13. 信噪比(SNR or S/N)
  14. 初识爬虫——爬虫与HTML介绍
  15. Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must hav
  16. APS高级计划排程和生产计划排产系统电子行业的解决方案
  17. Nature子刊 | 你知我意:精神病人的威胁性评估的fMRI标志物
  18. PowerPoint tricks
  19. 洛谷P1477 假面舞会
  20. MobBob 3D打印机器人 制作

热门文章

  1. Linux 1.debain 忘记root密码(修改root密码)2.debian 默认不允许 root 登录 解决办法 3.终端快捷键的设置 (超级详细)
  2. 【计算机操作系统】-进程切换什么时候会发生呢?
  3. QGraphicItem实现中心旋转
  4. 【OCC学习5】记录最新版本emcc编译occ的bug:opencascade-7.6.0/src/Standard/Standard_Time.hxx:29:25: error: redefinit
  5. NET MVC5第三方验证——FluentValidation
  6. 华为虚拟服务器忘记密码,华为云服务器忘记密码了怎么办
  7. C++中流控制函数 setw() setfill() setbase() setprecision()
  8. c语言之数据结构学习心得
  9. 数控车床铣床仿真加工操机视频教程
  10. 合并单元格后打字换行_excel中合并了单元格以后往里面打字如果打两行字,怎么换行...