概述

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 生成所有警告信息
  1. <br />