有下面一个源程序 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 | 添加宏定义 |