gcc 编译选项常用参数(-S -c -E -o)
前言
在编译C语言程序中,gcc是最常用的编译器,本文主要说明gcc中最重要,最基本的参数,知道这几个参数的作用,大多数场景下的编译任务我们都可以完成了。本文也借这几个参数,说明一段c语言代码是如何编译成为机器识别的代码的。
常用参数功能说明
本文主要说明-E,-S,-c,-o 四个编译选项,他们分别对应C语言程序编译中的几个步骤。
以编译程序test.c为例
-
-E: 预处理,主要是进行宏展开等步骤,生成的文件微
test.i
gcc -E test.c
-
-S: 编译,生成汇编代码,生成的文件为
test.S
gcc -S test.c
-
-c: 汇编:生成机器码,生成的文件未
test.o
gcc -c test.c
-
(-o): 链接:生成可执行文件
gcc test.c (-o test)
我们需要注意,-o本质上是一个重命名选项。无论有没有-o选项,最后都会执行链接的步骤。
当不使用-o选项时,执行命令gcc test.c
,生成的是默认的a.out文件。这个名字太丑啦,所以一般我们用-o重命名一下, 使用命令gcc test.c -o test
,生成可执行的test
文件