在OS中我比较常用gcc的一系列指令,但是由于笔者一直记不住,所以写下这篇博客记录一下。
gcc编译C语言代码经过四个步骤:预处理->编译->汇编->链接。
预处理:宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除,这里并不会检查语法。
编译:检查语法,将预处理后文件编译生成汇编文件。
汇编:将汇编文件生成二进制目标文件。
链接:C语言写的程序需要依赖各种库,所以编译之后还需要把库链接到最终的可执行文件中去。
gcc -E 源代码文件名 gcc编译器对源代码只进行预处理,而不编译。
会将预处理信息输出到屏幕上,可以通过重定向输出到文件中
gcc -c 源代码文件名 gcc编译器对源代码只进行编译,而不链接
产生一个同名的.o文件
gcc -o 输出可执行文件的文件名 源代码文件名 gcc对文件进行链接,即正常地编译出可执行文件
下面列出几种常见的文件类型。
.S 汇编代码
.o 二进制目标代码