【C学习随笔】GCC编译器语法结构

GCC语法结构

注:以下文件名称binFile表示编译后的文件,srcFile表示编译前的源文件

基本选项

gcc [options] [srcFile]

-c:只是编译不连接,生成目标文件.o

-S:只是编译不汇编,生成汇编代码

-E:只进行预编译,不做其他处理

-g:在可执行程序中包含标准调试信息

-o binFile:指定输出文件

-v:打印出编译器内部编译各过程的命令行信息和编译器的版本

-std=name:指定c语言的标准(如:c99等)

-I dir:在头文件的搜索路径列表中添加dir目录

-I dir:在头文件的搜索路径列表中添加dir目录

优化选项

gcc -O1 [-o binFile] [srcFile]
-O:减小代码的长度和执行时间,效果等价于-O1,其中包括线程跳转和延迟退栈。

-O2:除完成所有-O1级别的优化之外,同时还要进行一些额外的调整工作,如处理器指令调度等。

-O3:除完成所有-O2级别的优化之外,还包括循环展开和其他一些与处理器特性相关的优化工作。

数字越大优化的等级越高,也就意味着程序的运行速度越快。一般选用-O2选项,它在优化程度、编译时间和代码大小之间取得了一个较为理想的平衡点。

使用time [binFile] 来查看编译所需时间。

警告和出错选项

gcc -Wall [-o binFile] [srcFile]

-ansi:支持符合ANSI标准的C程序。

-pedantic:允许发出ANSI C标准所列的全部警告信息

-pedantic-error:允许发出ANSI C标准所列的全部错误信息

-w:关闭所有的警告

-Wall:允许发出GCC所提供的所有有用的警告信息,项目中为了有更好的可移植性,需检查各种告警信息