gcc 与 g++编译流程、常用参数

目录

gcc 与 g++编译流程

编译流程

预处理:生成.i 的预处理文件

编译:生成.s 的编译文件

汇编:生成.o 的汇编文件

链接:生成可执行文件

常用方式

gcc 与 g++常用参数介绍:

-E

-S

-c

-o

-O

-x

-C

-M

gcc 与 g++编译流程

编译流程

  • 链接:生成链接文件

预处理:生成.i 的预处理文件

  • 预处理:生成.i 的预处理文件

编译:生成.s 的编译文件

  • 只激活预处理和编译,把文件编译成汇编代码

汇编:生成.o 的汇编文件

  • 只激活预处理,编译和汇编,把程序做成 obj 文件

链接:生成可执行文件

常用方式

gcc 与 g++常用参数介绍:

-E

  • -E 选项指示编译器仅对输入文件进行预处理
  • 当这个选项被使用时,预处理器的输出被送到标准输出而不是储存在文件里,所以需要 -o 定向到某个文件中

-S

  • -S 选项告诉 GCC 在为 C 代码产生了汇编语言文件后停止编译
  • GCC 产生的汇编语言文件的缺省扩展名是.s

-c

  • -c 选项告诉 GCC 仅把源代码编译为目标代码
  • 缺省时 GCC 建立的目标代码文件有一个.o 的扩展名

-o

  • -o 选项来为将产生的可执行文件用指定的文件名

-O

  • -O 选项告诉 GCC 对源代码进行基本优化,这些优化在大多数情况下都会使程序执行的更快,优化分为 4 个等级(-O0,-O1,-O2,-O3)。
-O0 表示没有优化
-O1 为缺省值,主要进行跳转和延迟退栈两种优化
-O2 除了完成-O1 的优化之外,还进行一些额外的指令调整工作
-O3 除了完成-O2 的优化之外,还进行包括循环展开和其他一些与处理特性相关的优化工作

  • 其他优化等级的用法与演示中-O3 的用法一样。

-x

  • 设定文件编译所使用的语言,使后缀名无效

-C

  • 在预处理的时候,不删除注释信息
gcc -E hello.c -C
  • 保留注释信息。
gcc -E hello.c
  • 删除注释信息。

-M

  • 生成文件关联信息。包含目标文件所依赖的所有源代码

猜你喜欢

转载自blog.csdn.net/baidu_41388533/article/details/108897909
今日推荐