首先,Gcc,全称是GNU Compiler Collection,它是一套由GNU开发的编程语言编译器。它是linux平台下最常用的的编译器,下面我对gcc编译器的一些常见应用进行说明和介绍。
通常的,一个C源程序要生成可执行文件,需要经过预处理,编译,汇编,链接步骤,然后生成可执行程序文件。
预处理是是在真正的编译开始之前执行的,以“#”开头的都是预处理,在预处理阶段可以完成的有:实现头文件的展开,宏的替换,以及条件编译。
GCC编译器的编译的常用选项有:
我的linux版本是:ubuntu10.10 GCC的版本是4.4.5
1.-E:在预处理后即停止,不再进行下面的编译汇编和链接
如:#include <stdio.h>
int main()
{
printf("Hello word!\n");
return 0;
}
记为hello.c文件,在执行gcc -E hello.c > hello.i时(此处利用了重定向将信息输出到hello.i),来验证头文件展开后即停止了。通过查看hello.i文件
gcc -E可以查看是否宏定义都替换成功,在调试过程中进行。
2.-c:编译器,使用gcc -c filename,生成*.o文件。可以进行语法检查。
3.-S:汇编器,如使用gcc -S hello.i可以生成hello.s汇编文件。
4.-o :如使用gcc -o hello hello.c,可以将hello.c生成可执行文件hello.
5.链接器的作用(ld):把目标文件和库文件链接成可执行文件
属于学习小结,有错还望指出