gcc编译步骤
有下面一个源程序 main.c:
#include "stdio.h"
int main(void)
{
printf("Hello World !");
return 0;
}
在使用gcc 将 源文件 main.c编译成 可执行目标程序 总共需要4步:
1、源文件 main.c 预处理后,生成main.i 的文件
gcc -o main.i -E main.c
2、将预处理后的文件 main.i 转换成汇编语言, 生成文件 main .s
gcc -S main.i
3、有汇编文件 main.s 变为目标代码(机器代码)生成 main .o 的文件
gcc -c main.s
4、连接目标代码, 生成可执行程序
gcc -o main.out main.o
此时在命令行中输入:
./main.out
回车,即可在终端中打印出: Hello World !
编译选项
以下为常用的编译选项
| 选项 | 说明 |
|---|---|
| -o | 制定目标名称, 默认的时候, gcc 编译出来的文件是 a.out |
| -c | 只是编译不链接,生成目标文件“.o” |
| -S | 只激活预处理和编译,就是指把文件编译成为汇编代码 .S |
| -E | 只进行预编译,不做其他处理 |
-I(i的大写) | 头文件路径 |
| -L | 搜索链接库的目录 |
-l(L的小写) | 手动添加链接库 |
| -Wall | 启用编译器的警告信息 |
| -w | 关闭编译时的警告 |
| -werror | 把所有的告警信息转化为错误信息,并在告警发生时终止编译过程 |
| -O | 优化等级,-O0、-O1、-O2、-Og |
| -D | 添加宏定义 |






![[附源码]SSM计算机毕业设计政府公用车辆管理系统JAVA](https://img-blog.csdnimg.cn/499ea2a6baf2453ab45fb91a7dd9ed3c.png)






![[MQ] MQ的应用场景及Docker安装RabbitMQ](https://img-blog.csdnimg.cn/d71f0b3d20204d1eaa8056536ee544ac.png)
![PGL图学习之图神经网络GraphSAGE、GIN图采样算法[系列七]](https://img-blog.csdnimg.cn/img_convert/88a1ef82ca61113ad7be6ab3cfc05665.jpeg)




