设为首页
收藏本站
搜索
热搜:
Java
Python
UI
人工智能
Web
影视特效
抖音
网络营销
运营
本版
文章
帖子
群组
用户
登陆
注册
首页
Portal
互联网资讯
视频教程
技术社区
BBS
IT培训
学历提升
快速发布
个人中心
今日签到
私信列表
消息中心
搜索全站
课程咨询
返回顶部
大内高手社区
›
技术社区
›
C/C++/C#论坛
›
C语言编译器(C语言编程软件)完全攻略 ...
吸光
关注Ta
发帖数
2
粉丝
1
此人很懒,什么也没有留下
[C/C++/C#论坛]
C语言-什么是源文件?
阅读作者更多精彩帖子
热门问答
更多热门问答
1
淘宝客注册流程步骤
22567人围观,发布于2021-09-26
1
APP运营核心要点有哪些
21042人围观,发布于2022-07-08
0
了解运营
13183人围观,发布于2021-09-18
0
网站的 TDK基本格式
12363人围观,发布于2021-09-23
0
SEO优化中网站地图在的主要作用
13668人围观,发布于2022-01-13
0
快速提高网站SEO优化排名的方法
16625人围观,发布于2022-01-13
技术文章
更多技术文章
告别“限速”,个人网盘进入云时代
2022-12-28
长难任务设计指南,必须收藏!
2022-12-28
新消费,走进「韧性时代」
2022-12-28
营销技能:营销4P之外,还有这些经典理论
2022-12-28
实例分享 | 社区产品编辑器的设计开发要点
2022-12-28
产品经理方法论——流程与审批流的区别
2022-12-27
返回列表
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
回复
使用道具
举报
发布主题
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
返回顶部
返回列表