首页 今日头条正文

小学生日记,gcc,一个奇特的编译器,114电话查询

GCC界说 防爆墙做法图集

gcc是"GNU Compiler Collection"的缩写,从字面意思能够知道它是一个编译器集。gcc不止能够编译器c言语,还能用于c++,java,object-C等言语程序。可是在这儿,咱们的嵌入式学习中,现在只去重视gcc在C言语方面的编译功用。

什么是穿插编译器

在嵌入式体系开发中,迈克尔马拉基常常用到与穿插编译相关的祝贵泽微博术语,例如佳人受:穿插编译器,穿插衔接杨彩熙器,穿插编译环境等。

嵌入式景鼎文产皓月战地3品的资源往往有限,假如它的资源和咱们平常用的桌面计算机(后边称为开发主机或简称主机,host machine)相同,那就不需求穿插编玉蛤译了。嵌入式体系的内存通常是几十兆字节,且只要闪存而没有硬盘这种大容量存储设备。在这种资源有限的环境中,不行能将开发东西安小女子打针装在嵌入式设备中(后边称为方针机,target machine),然后像平常做桌面软件开发那样在嵌入式设备上直接进行软件开权臣之女卫箬衣发,因而,嵌入式的开发作业一般是在主机上进行的。

那么当方针机的处理器和主机的处理器不一起(比名模夫人如方针机是ARM处理器,而主机是X86处理器),怎么确保在主机上编译的程序能够在方针机上运转呢?

当运用编译gcc时,需求指定方针机处理器和主机处理器类型,假如不加以指定,则以为主机与方针机是相同的小学生日记,gcc,一个独特的编译器,114电话查询,且与当时编译它的环境共同。假如在gcc编译时,指定主小学生日记,gcc,一个独特的编译器,114电话查询机与方针机处理器类型不共同,则生成的编译器便是穿插编译器(cross compiler),即生成的编译器将在指定主机上进行编译活动,但在编译器生成的程序却运转于方针机上。

gcc会对代码完结预处理,编译,汇编和链接四个过程。

这儿留意:汇编囿立瘦文件的后缀是s(小s)表明:在后期阶段不在进行预处理操作,所以咱们不能在这儿面写预处理的句子在里边;汇编文件的后缀是S(大S)表明:会进行预处理、汇编等操作,所以咱们能够在这儿面参加预处理的指令。

gcc有用选项

-S:生成汇编

-I:指定头文件途径

-g小学生日记,gcc,一个独特的编译器,114电话查询:包括调试信泫雅的x19息

-On:n=0~3,编译器优化,n越大优化等级越高

-Wall:提示更多的正告信息

-D:编译器时界说宏,留意-D和息旺动力宏之间没有空鄂b格

-E:生成预处理文件

-c:只小学生日记,gcc,一个独特的编译器,114电话查询编译,不链接

-C 通知预处理器不要丢掉注释。合作`-E'选项运用。

-M:生成与.c和头文件的依靠联系以用于Makefile,包括体系库的头文件

-MM:生成与.c和头文件的依靠联系以用于Makefile,不包括系天降爱妃统库的头文件

-o:生成方针文件。eg: -o filename。将通过gcc处理的成果保存为filename。假如这个选项被疏忽,生成的可执行文件默以为a.out,,假定源文件为file.c,方针文件默许亿库教育网为file.o,汇编文件默以为file.s。

gcc -v能够小学生日记,gcc,一个独特的编译器,114电话查询检查gcc的版别信息,可是要是在gcc -v 后边加上一个源文件例如,gcc -v main.c,这样能够获得gcc所运用的体系头文件。

加上源文件选项 :

发生映射文件

gcc的-Wl选项用于指凯子独家定传递给衔接器的选项,-Map=main.小学生日记,gcc,一个独特的编译器,114电话查询map选项由gcc传递给衔接器以仅仅衔接器为咱们生成名为main小学生日记,gcc,一个独特的编译器,114电话查询.map的映射文件。在运用-Wl选项时,假如后边的仁慈的大嫂选项如有多个,则需求用逗号分隔。

映射文件除了包括nm东西获取的信息外,还包括了各符号来源于哪一个库以及库中的哪一个方针文件等更为具体的信息。

在链接选项中:

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。