Linux工具GCC编译器的原理分析

这篇文章给大家介绍Linux工具GCC编译器的原理分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

概述

GCC(GNU Compiler Collection)编译器是GNU Linux操作系统的默认编译器

编译流程

预处理

预处理器CPP进行预处理,把头文件,宏等进行展开,生成.i文件

编译

GCC 支持多种编程语言,假设是c语言则ze调用C语言的编译器cll 。编译完成之后生成汇编程序,输出.s的文件

汇编

GCC调用汇编器as 进行汇编,生成可重定向的目标程序

链接

GCC 调用链接器把所有的目标文件和C语言的标准库连接成可执行的二进制文件

编译选项

本地编译在当前的目标平台编译出来的程序,并且一般只运行在当前编译的平台。

交叉编译在一种平台上编译,然后放到另外一种平台上运行,这过程称为交叉编译

gcc编译选项

选项


-c

编译、汇编指定的源文件,但是不进行链接

-S

编译指定的源文件,但是不进行汇编

-E 预处理指定的源文件,不进行编译
-o 生成目标文件,[file1] [file2] 将文件 file2 编译成可执行文件 file1
-I directory 指定 include 包含文件的搜索目录
-g 生成调试信息,该程序可以被调试器调试

-Wall

生成所有警告信息




关于Linux工具GCC编译器的原理分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。