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
View Code

2.常用参数

  • -v/--version

    gcc版本信息

  • -I

    大写i,编译的时候,指定头文件的路径。

  • -c

    把汇编文件,汇编成二进制文件。

  • -O

    指定生成文件的名字

  • -g

    gdb调试的时候需要该选项,链接的库都有差异

  • -D

    大写d,编译时指定宏

  • -Wall
  • -On

 

以上是关于gcc的主要内容,如果未能解决你的问题,请参考以下文章

[linux][c/c++]代码片段02

GCC/MingW 在不同版本上编译

GCC优化技巧,真的有用吗?

解释'空'C数组(int a = {};)

Makefile

将系统 C 安装到 Cygwin