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

4>链接(linking):最后在链接阶段将输入的二进制机器代码文件*.o,汇集成一个可执行的二进制代码文件。

这个阶段使用命令:

gcc  tiger.o   -o tiger

注:

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

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

linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/ppwpy.html