GCC常用命令选项及工作流程
GCC命令的使用格式为:
gcc [选项 ] [文件名 ] [选项 ] [文件名 ]
gcc命令按类型可以分为以下几类:
(1)、总体选项:用于控制编译的整个流程,常用选项如下:
-c: 对源文件进行编译或汇编
-E: 对原文件进行预处理
-s: 对源文件进行编译
-o file: 输出目标文件file
-v: 显示编译阶段的命令
(2)、语言选项,常用选项如下:
-ansi: 支持符合ANSI标准的C程序
(3)、警告选项:用于控制编译过程中产生的各种警告信息,常用选项如下:
-W: 屏蔽所有的警告信息
-Wall: 显示所有类型的警告信息
-Werror: 出现任何警告信息就停止编译
(4)、调试选项:用于控制调制信息,常用选项如下:
-g: 产生调试信息
(5)、优化选项:用于对目标文件进行优化,常用选项如下:
-01: 对目标文件的性能进行优化
-02: 在-01的基础上进一步优化,提高目标文件的运行性能
-03: 在-02的基础上进一步优化,支持函数集成优化
-00: 不进行优化
(6)、连接器选项:用于控制链接流程,常用选项如下:
-static: 使用静态链接
-llibrary: 链接llibrary函数库文件
-L dir: 指定连接器的搜索目录dir
-shared: 生成共享文件
(7)、目录选项:用于指定编译器的文件搜索目录,常用选项如下:
-Idir: 指定头文件的搜索目录dir
-Ldir: 指定搜索目录dir
在使用GCC编译程序时,编译过程可以被细分为四个阶段:
●预处理 ●编译 ●汇编 ●链接
预处理阶段停止: -E
预处理过程的执行内容:头文件展开、宏替换、条件编译
编译阶段停止: -c
编译过程执行内容:语法检查、词法分析、语义分析
汇编阶段停止: -S
静态库:是在执行程序之前就已经加入到执行代码中,成为执行程序的一部分来执行的,后缀名:. a;
动态库:是在执行程序启动时加载到执行代码中,后缀名: . so;