Linux之gcc的一些常见用法

1.gcc编译器对程序的编译,分为四个阶段:

1>预编译(pre-processing):在预处理阶段,输入的是C语言的源文件,通常为*.c。它们一般带有*.h之类的头文件。这个阶段主要处理源文件中的#ifdef,#include,#define预处理命令。该阶段会生成一个中间文件*.i文件。

这个阶段使用命令:

    gcc –E  tiger.c –o  tiger.i

它通过对源文件tiger.c使用-E选项来生成中间文件tiger.i

2>编译和优化(compiling):在编译阶段,输入的是中间文件*i,编译后生成汇编文件*.s

这个阶段使用命令:

    gcc –S  tiger.i –o tiger.s

3>汇编(assembing):在汇编阶段,将输入的汇编文件*.s转换成二进制机器代码*.o.

这个阶段使用命令:

    gcc -c tiger.s  –o  tiger.o

这个阶段使用命令:

    gcc  tiger.o   -o tiger

注:

以上所有阶段,可以直接使用gcc  -o tiger  tiger.c,直接生成可执行文件。

    gcc -o tiger  tiger.c(也可以使用gcc  tiger.c  -o tiger)  

相关推荐