gcc的基本使用

1、gcc的编译过程 ( 参数分别为:E S c , 输出文件参数-o )

  • 预处理:.c —> .i C文件,头文件展开、宏替换、去注释
    gcc -E sum.c -o sum.i// 将sum.c预处理生成sum.i文件

  • 编译器:.i —> .s 汇编文件,C语言代码变成汇编代码
    gcc -S sum.i -o sum.s // 将预处理文件编译成汇编文件

  • 汇编器:.s —> .o 二进制文件,汇编代码变成二进制代码
    gcc -c sum.s -o sum.o // 将汇编代码汇编成二进制文件

  • 链接器:.o —> .out 可执行文件,将函数库中的代码组合到目标文件中
    gcc sum.o -o sum.out // 将链接文件链接成可执行文件

  • 一步到位:

    gcc sum.c -o sum.out // 链接器->汇编器->编译器->预处理器,一层层往上调用最终找到源文件,中间过程不会省略,只是过程只产生临时文件不会保存下来。

2、gcc的一些参数

  • I —> gcc sum.c -I include -o sum.out // -I参数表明头文件目录包含该目录
  • D —> gcc sum.c -D DEBUG -o sum.out // -D参数表明编译时加宏定义
  • O —> gcc sum.c -O -o sum.out // -O参数可用来优化代码,有O1\O2\O3
  • Wall —> gcc sum.c -Wall -o sum.out // -Wall 参数提示警告
  • g —>gcc sum.c -g -o sum.out // -g在程序中添加调试信息,生成的可执行文件会变大

Leave a Reply