GCC
程序员文章站
2022-05-04 09:28:20
1,其本质就是一个编译器。 gcc -o output gcc -o 输出文件名 输入文件名 2.其编译过程实质可分为一下四部: (1)预处理 【gcc -E】可以理解为替换,宏定义等。 (2)编译 (编译为汇编)【gcc -S】 生成.s文件 (处理关键字) (3) 汇编 【gcc -c】 由上步 ......
1,其本质就是一个编译器。
gcc -o output
gcc -o 输出文件名 输入文件名
2.其编译过程实质可分为一下四部:
类型 | 说明 |
-e | 预处理后即停止,不进行编译、汇编及连接 |
-s | 编译后即停止,不进行汇编及连接 |
-c | 编译或汇编源文件,但不进行连接 |
-o file | 指定输出文件file |
(1)预处理 【gcc -e】可以理解为替换,宏定义等。
(2)编译 (编译为汇编)【gcc -s】 生成.s文件 (处理关键字)
(3) 汇编 【gcc -c】 由上步.s生成.o文件
(4) 链接 【gcc -o】
上述四部只能依次顺序进行(下一步奏的执行,上一步骤必须执行)。
在预处理阶段,主要处理c语言源文件中的#ifdef、#include、以及#define等命令。在与处理过程中,gcc会忽略掉不需要预处理的输入文件,该阶段会生成中间文件*.i。
3.常见错误
(1)预处理出错
#include “stdio.h” (“”用于当前目录)
#include "abc.h" (<>只能用于系统目录)
not find
gcc -i 跟查找头文件的目录(指明头文件所在)eg: gcc -i ./a -o file a.c
(2)编译错误
主要为语法问题;
上一篇: iOS开发小技巧总结
下一篇: 脆西瓜怎么挑?从5点挑起