-
概述
- GCC:GNU编译家庭
-
GCC编译流程
- 预处理
- 编译
- 汇编
- 链接
- GCC支持多种语言的编译,它通过程序的扩展名可分辨出编写原始程序所用的语言
-
GCC编译流程分析
-
GCC基本语法格式:
-
gcc [option | filename]
- 编译器根据option参数来实现强大的功能
- 根据文件的扩展名来采取相应的处理过程
-
预处理阶段
- “-E” 可以使编译器在预处理后,就停止编译
- “-o” 指定编译输出的结果
- “-i” 文件名扩展名,表示经过预处理过的C原始程序
-
编译阶段
- 此步骤首先要检查代码的规范性,以及是否有语法等错误,以确定下面要做的操作,检查无误后,开始把代码翻译成汇编语言
- “-S”:指编译器进行完编译后就停止,其生成物是汇编类型(.s类型文件)
-
汇编阶段
- 此阶段是把“.s”汇编文件生成目标文件(.o后缀的二进制目标代码)
- “-c” :指将汇编程序文件生成目标二进制文件(.o后缀)
-
链接阶段
- “-o” :此阶段将二进制目标文件转化成可执行的文件
-
GCC警告提示
-
概念
- GCC包含了完整的出错检查和警告提示的功能,以便高质量代码的编写
-
分类
-
Wall类警告提示
-
概述
- 此类警告占GCC警告选项的90%以上,不仅包括打开所有警告的功能,而且还可以单独对常见错误分别指定警告
-
Wall类警告提示选项
- -Wall
- -Wchar-subscripts
- -Wcomment
- -Wformat
- -Wimplicit
- -Wmissing-braces
- -Wparentheses
- -Wsequence-point
- -Wswitch
- -Wunused-label
- -Wunused-function
- -Wunused-varibale
- -Wunused-value
- -Wunused-parameter
- -Wuninitalized
-
非Wall类警告提示
-
概述
- 最常用的有两种:“-ansi” 和"-pedantic"
-
常见提示选项
- “-ansi”
- 强制GCC生成标准语法所要求的告警信息
- “-pedantic”
- 此选项允许发出ANSI C标准所列的全部警告信息,同样也保证所有没有警告的程序都是符合ANSI C标准的。
- GCC使用库函数