2026/4/6 9:31:22
网站建设
项目流程
做女装代理需要自建网站么,企业网站怎做,wordpress 二次验证,网络营销成功案例有哪些对于c编译器#xff0c;大家应早已熟悉。往期文章中#xff0c;小编带来诸多c编译器相关文章#xff0c;尤其是gcc c编译器。本文中#xff0c;小编将对gcc c编译器如何编译c程序予以介绍#xff0c;并在文章的后半部分向大家讲解如果选择pic单片机的c编译器。如果你对本文…对于c编译器大家应早已熟悉。往期文章中小编带来诸多c编译器相关文章尤其是gcc c编译器。本文中小编将对gcc c编译器如何编译c程序予以介绍并在文章的后半部分向大家讲解如果选择pic单片机的c编译器。如果你对本文即将要涉及的内容存在一定兴趣不妨继续往下阅读哦。一、GCC如何编译C语言程序使用GCC将C语言源代码文件生成可执行文件的过程需要经历四个的步骤预处理(Preprocessing)编译(Compilation)汇编(Assembly)链接(Linking)1、预处理(Preprocessing)将C源程序预处理生成.i文件。预处理过程实质上是处理“#”将#include包含的头文件直接拷贝到.c当中;将#define定义的宏进行替换;将#if #else #endif定义的无用代码过滤掉同时将代码中没用的注释部分删除等。预处理所完成的基本上是对源程序的“替代”工作。经过此种替代生成一个没有宏定义、没有条件编译指令、没有特殊符号的输出文件。这个文件的含义同没有经过预处理的源文件是相同的但内容有所不同。2、编译(Compilation)预处理后的.i文件编译为汇编语言生成.s文件。编译所要作的工作就是通过词法分析和语法分析在确认所有的指令都符合语法规则之后将其翻译成等价的中间代码表示或汇编代码。3、汇编(Assembly)将.s文件经过汇编生成.o目标文件。汇编过程实际上指把汇编语言代码翻译成目标机器指令的过程。对于被翻译系统处理的每一个C语言源程序都将最终经过这一处理而得到相应的目标文件。目标文件中所存放的也就是与源程序等效的目标的机器语言代码。目标文件由段组成。通常一个目标文件中至少有两个段代码段该段中所包含的主要是程序的指令。该段一般是可读和可执行的但一般却不可写。数据段主要存放程序中要用到的各种全局变量或静态的数据。一般数据段都是可读可写可执行的。4、链接(Linking)将.o文件链接起来生成一个可执行文件。链接程序的主要工作就是将有关的目标文件彼此相连接也即将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来使得所有的这些目标文件成为一个能够被操作系统装入执行的统一整体。根据库函数不同的链接方式链接处理可分为静态链接和动态链接两种。使用静态链接的好处是依赖的动态链接库较少具有较好的兼容性;缺点是生成的程序比较大。使用动态链接的好处是生成的程序比较小占用较少的内存。C语言中静态库和动态库简介需要注意的是.i文件、.s文件、.o文件可以认为是中间文件或临时文件若使用 GCC 一次性完成C语言程序的编译那么只能看到最终的可执行文件这些中间文件都是看不到的因为 GCC 已经将它们删除了。二、如何选择PIC单片机的C编译器如果是编译PIC10、PIC12、PIC16系列单片机用CCS最好。而PIC18/PIC24/dsPIC/PIC32系列用MCC最好。PIC单片机的C编译器只有HI-TECH公司出品PICC编译器和CCS公司的CCS编译器。还有PIC的生产商Microchip公司自行生产的只针对PIC18/PIC24/dsPIC/PIC32系列单片机的C语言编译器MCC(MCC18 / MCC30 / MCC32)。IAR软件不能编译PIC的C语言或汇编语言。要注意的一点是CCS虽然也是C语言但因为头文件不同所以它的程序和PICCMCC都不一样三者的程序不能混着编译比如针对CCS编写的程序只能用CCS的编译器编译用PICC编译只能报错。另外HI-TECH已经被MICROCHIP收购成为MICROCHIP旗下的全资子公司。