Linux之gcc的一些常见用法

2014-11-24 12:31:31 · 作者: · 浏览: 2

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)