gcc
Posted argor
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gcc相关的知识,希望对你有一定的参考价值。
1.gcc 的工作流程
- 预处理(选项:E,调用<预处理器cpp>完成预处理)
- 宏替换
- 头文件展开
- 注视去掉
- .c -> .i
- 编译(选项:S,也只有这一步是gcc自己完成的)
- .i -> .s
- 汇编(选项:c,调用<汇编器as>)
- .s -> .o
- 二进制文件
- 链接(调用<链接器ld>)
- .o -> .out
源文件(hello.c)预处理 cpp/gcc -E -> C文件(hello.i)编译器 gcc -S -> 汇编文件(hello.s)汇编器 as/gcc -c -> 二进制文件(hello.o)链接器 ld/gcc -> 可执行文件(hello.out)
ESc-iso
1 # gcc -E hello.c -o hello.i 2 # gcc -S hello.i -o hello.s 3 # gcc -c hello.s -o hello.o 4 # gcc hello.o
2.常用参数
- -v/--version
gcc版本信息
- -I
大写i,编译的时候,指定头文件的路径。
- -c
把汇编文件,汇编成二进制文件。
- -O
指定生成文件的名字
- -g
gdb调试的时候需要该选项,链接的库都有差异
- -D
大写d,编译时指定宏
- -Wall
- -On
以上是关于gcc的主要内容,如果未能解决你的问题,请参考以下文章