C语言 gcc 编译程序
C语言 gcc 编译程序
上篇博客写到了 编写HelloWorld,不管是通过IDE还是记事本最终的验证结果还是需要运行程序来核验,C语言在编写完成后需要通过gcc编译成可执行程序来进行使用,下面我会进行说明。
C语言 编译过程
一、C程序编译步骤
C代码编译成可执行程序经过4步:
1)预处理:宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除,这里并不会检查语法
2)编译:检查语法,将预处理后文件编译生成汇编文件
3)汇编:将汇编文件生成目标文件(二进制文件)
4)链接:C语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接到最终的可执行程序中去
通过 gcc 编译程序
一、编译程序
1) 分步编译、(手动编译经过每次步骤)
- 预处理:gcc -E hello.c -o hello.i
- 编 译:gcc -S hello.i -o hello.s
- 汇 编:gcc -c hello.s -o hello.o
- 链 接:gcc hello.o -o hello.exe
2)一步编译、(还是经过:预处理、编译、汇编、链接的过程):
- gcc -o demo.exe hello.c
二、gcc 使用参数、后缀含义
选项 | 含义 |
-o file | 指定生成的输出文件名为file |
-E | 只进行预处理 |
-S(大写) | 只进行预处理和编译 |
-c(小写) | 只进行预处理、编译和汇编 |
文件后缀 | 含义 |
.c | C 语言文件 |
.i | 预处理后的 C 语言文件 |
.s | 编译后的汇编文件 |
.o | 编译后的目标文件 |