GCC是有GNU开发的编程语言编译器。
使用GCC编译器,目的大多都是将源代码编译成可执行文件。
但是在这看似简单的一步,实则经过了预处理(Preprocessing)
编译(Compilation)、汇编(Assembly)和链接(Linking)四个步骤;
步骤命令参数:
预处理:-E
编译:-S
汇编:-c
链接:直接加.o文件
1、预处理:将源代码中包含头文件、宏定义语句展开分析,整合一套新的代码文件输出到
后缀为“.i”的文件中,作为下一步的编译的入力文件。
命令:gcc -E file.c -o file.i
2、编译:将预处理生成的.i文件编成后缀为“.s”的汇编文件。
命令:gcc -S file.i -o hello.s
3、汇编:将编译生成的.s汇编文件,翻译成机器规定的机器代码,后缀为.o的文件。
命令:gcc -c file.s -o file.o
4、链接:将汇编生成的二进制机器代码,系统的库文件等链接在一起,生成一个可以再linux
平台运行的可执行文件。
命令:gcc file.o -o file
GCC编译器主要实现上面四个步骤,生成最终的可执行文件;
当不需要这些单步运行的时候,可以直接使用gcc命令,一步生成可执行文件;
命令:gcc file.c -o file //生成可执行文件file
gcc file.c //生成可执行文件a.out
注意:当使用gcc命令时。可在命令后边加上- wall参数,可以显示所有警告信息。