内容:本节主要用于介绍gcc编译器的使用。
1.gcc编译的四个阶段
阶段 | 命令 | 功能 |
---|---|---|
预编译 | gcc -E hello.c -o hello.i |
1.头文件展开2.宏替换3.去注释 |
编译 | gcc -S hello.i -o hello.s |
c文件经过编译变成汇编文件 |
汇编 | gcc -c hello.s -o hello.o |
将汇编文件变成二进制文件 |
链接 | gcc hello.o -o hello |
链接.o文件和库文件 |
gcc编译共有四个阶段:
将.c文件经过预编译成.s文件,.s文件经过编译为.i文件,将.i文件汇编为.o文件,最后将.o文件和库文件链接生成可执行文件。
一步到位:
默认自动向上调用,所以使用链接命令可以自动调用上面几步过程,所以可以一步到位,生成可执行文件。
gcc hello.c -o hello
同样使用汇编命令也可以向上调用,可以一步到位,生成.o文件。
gcc -c hello.c -o hello.o
2.gcc的相关命令
命令 | 功能 | 例子 |
---|---|---|
-I | 指定头文件位置 | gcc hello.c -I ./include |
-o | 指定输出文件的名字 | gcc hello.c -o hello |
-D | 编译时打开宏 | gcc hello.c -D DEBUG |
-O | 优化程序(0-3)3为最优化 | gcc hello.c -O3 |
-Wall | 输出警告信息 | gcc hello.c -Wall |
-g | 编译时添加调试信息,用于后续gdb调试 | gcc hello.c -g |
提示:很简单的东西,只是一些命令,忘了就在看看。