gcc对c语言的编译过程及基本参数

gcc对c语言的编译过程及基本参数

  • 概述
    • 预处理
    • 编译
    • 汇编
    • 链接
  • 常用参数

概述

gcc对c语言的编译过程分为4部分:
1、预处理
2、编译
3、汇编
4、链接
gcc 也可以对c++语言进行编译,在不使用c++的标准库时可以像c语言那样直接编译,如果使用了c++的标准库函数,则需要在编译指令中加上 -l stdc++ 来链接c++标准库。在编译时,也可以不生成中间文件,直接使用:

gcc xxx.c -o xxx

命令直接生成可执行文件。

预处理

预编译就是对程序中的伪指令和特殊符号进行处理的过程。包括宏展开、头文件展开、去掉注释、条件编译、添加行号和文件标识。

命令		gcc -E 源文件.c -o 目标文件.i

编译

编译过程既是把预处理阶段的文件进行系列的词法分析、语法分析、语义分析、和优化生成相应的汇编代码

命令		gcc -S xxx.i -o xxx.s

汇编

将汇编语言转化成二进制的机器语言

命令		gcc -c xxx.s -o xxx.o

链接

链接阶段主要是解决多个文件之间的符号引用问题,链接库文件生成可执行文件

命令		gcc xxx.o -o xxx.exe

常用参数

  1. -I(i的大写):指定头文件所在的文件夹。源文件中尖括号中的头文件首先在-I指定的路径中寻找,找不到的话接着在 /usr/local/include 中查找。在找不到就到 /usr/include 中查找。再找不到就报错。如果是双引号引用的头文件,如果当前的工作目录中没有找到,就在-I指定的路径中寻找 -> /usr/local/include->/usr/include再找不到的话报错。
  2. -include :指定头文件。可能有一些开源的软件会在命令行中指定头文件。表现为,程序中使用了头文件中的内容,但程序中没有包含头文件。
  3. -Wall:显示警告信息
  4. -g: 生成可供调试的可执行文件
  5. -pg:生成可以供gprof 剖析的可执行文件
  6. -l:用来链接共享库

g++的使用方法和gcc差不多,g++在编译c++代码时不需要手动链接c++标准库,使用比较方便

你可能感兴趣的:(gcc)