返回顶部

C语言编译器(C语言编程软件)完全攻略

[复制链接]
吸光Lv.1 显示全部楼层 发表于 2021-12-22 11:37:50 |阅读模式 打印 上一主题 下一主题
  在上节《C语言编译和链接》中我们已经讲解了C语言编译器的概念,由于C语言的历史比较久,而且早期没有规范,整个计算机产业也都处于拓荒的年代,所以就涌现了很多款C语言编译器,它们各有特点,适用于不同的平台,本节就来给大家科普一下。
  我们分两部分介绍C语言的编译器,分别是桌面操作系统和嵌入式操作系统。

  一、桌面操作系统

  对于当前主流桌面操作系统而言,可使用VisualC++、GCC以及LLVMClang这三大编译器。

  VisualC++(简称MSVC)是由微软开发的,只能用于Windows操作系统;GCC和LLVMClang除了可用于Windows操作系统之外,主要用于Unix/Linux操作系统。

  像现在很多版本的Linux都默认使用GCC作为C语言编译器,而像FreeBSD、macOS等系统默认使用LLVMClang编译器。由于当前LLVM项目主要在Apple的主推下发展的,所以在macOS中,Clang编译器又被称为AppleLLVM编译器。

  MSVC编译器主要用于Windows操作系统平台下的应用程序开发,它不开源。用户可以使用VisualStudioCommunity版本来免费使用它,但是如果要把通过VisualStudioCommunity工具生成出来的应用进行商用,那么就得好好阅读一下微软的许可证和说明书了。

  而使用GCC与Clang编译器构建出来的应用一般没有任何限制,程序员可以将应用程序随意发布和进行商用。

  MSVC编译器对C99标准的支持就十分有限,加之它压根不支持任何C11标准,所以本教程中设计C11的代码例子不会针对MSVC进行描述。所幸的是,VisualStudioCommunity2017加入了对Clang编译器的支持,官方称之为——ClangwithMicrosoftCodeGen,当前版本基于的是Clang3.8。

  也就是说,应用于VisualStudio集成开发环境中的Clang编译器前端可支持Clang编译器的所有语法特性,而后端生成的代码则与MSVC效果一样,包括像long整数类型在64位编译模式下长度仍然为4个字节,所以各位使用的时候也需要注意。

  为了方便描述,本教程后面涉及VisualStudio集成开发环境下的Clang编译器简称为VS-Clang编译器。

  二、嵌入式系统

  而在嵌入式系统方面,可用的C语言编译器就非常丰富了,比如:

  用于Keil公司51系列单片机的KeilC51编译器;

  当前大红大紫的Arduino板搭载的开发套件,可用针对AVR微控制器的AVRGCC编译器;

  ARM自己出的ADS(ARMDevelopmentSuite)、RVDS(RealViewDevelopmentSuite)和当前最新的DS-5Studio;

  DSP设计商TI(TexasInstruments)的CCS(CodeComposerStudio);

  DSP设计商ADI(AnalogDevices,Inc.)的VisualDSP++编译器,等等。

  通常,用于嵌入式系统开发的编译工具链都没有免费版本,而且一般需要通过国内代理进行购买。所以,这对于个人开发者或者嵌入式系统爱好者而言是一道不低的门槛。

  不过Arduino的开发套件是可免费下载使用的,并且用它做开发板连接调试也十分简单。Arduino所采用的C编译器是基于GCC的。

  还有像树莓派(RaspberryPi)这种迷你电脑可以直接使用GCC和Clang编译器。此外,还有像nVidia公司推出的JetsonTK系列开发板也可直接使用GCC和Clang编译器。树莓派与JetsonTK都默认安装了Linux操作系统。

  在嵌入式领域,一般比较低端的单片机,比如8位的MCU所对应的C编译器可能只支持C90标准,有些甚至连C90标准的很多特性都不支持。因为它们一方面内存小,ROM的容量也小;另一方面,本身处理器机能就十分有限,有些甚至无法支持函数指针,因为处理器本身不包含通过寄存器做间接过程调用的指令。

  而像32位处理器或DSP,一般都至少能支持C99标准,它们本身的性能也十分强大。而像ARM出的RVDS编译器甚至可用GNU语法扩展。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

达内教育:成立于2002年。致力于面向IT互联网行业,培养软件开发工程师、测试工程师、系统管理员、智能硬件工程师、UI设计师、网络营销、会计等职场人才 达内使命:缔造年轻人的中国梦、缔造达内员工的中国梦 达内愿景:做管理一流的教育公司
  • 商务合作

  • 微信公众号

  • Powered by Discuz! X3.4 | Copyright © 2002-2021, 达内教育 Tedu.cn
  • 京ICP备08000853号-56 |网站地图 | 京公网安备 11010802029508号