GCC(GNU Compiler Collection)是一个广泛使用的开源编译器套件,用于将用C、C++、Go、Fortran等语言编写的源代码转换为可执行程序。在Linux系统中,GCC是进行软件开发的重要工具之一。
编译的4步骤
1、预处理:gcc -E
将.c文件处理生成.i文件(展开宏、头文件,替换条件编译,删除注释、空行、空白等)
2、编译:gcc -S
将预处理后的.i文件转换成汇编语言,生成.s文件(检查语法规范,消耗的时间,系统资源最多)
3、汇编:gcc -c
将汇编指令翻译为机器指令生成.o文件
4、链接:
链接目标代码,生成可执行程序
例如有一个hello.c的文件
可使用-o在后面添加文件名指定可执行文件的文件名,例如:gcc -o hello hello.c
如果没用指定文件名,会默认生成一个a.out的可执行文件。
gcc的参数选项
常见参数 | 作用 | 解释 |
---|---|---|
l | 指定头文化的目录位置 指定动态库库名 | 当头文件和源码不在同一目录下时,需要指定头文件 |
L | 指定动态库路径 | |
c | 得到二进制文件 | 只做预处理,编译,汇编操作。 |
g | 编译时添加调试文件 | 添加调试文件,可以用于gdb的调试 |
Wall | 显示警告信息 |