GCC

Posted chu-yi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GCC相关的知识,希望对你有一定的参考价值。

1,其本质就是一个编译器。

gcc -o output

gcc  -o  输出文件名  输入文件名  

2.其编译过程实质可分为一下四部:

类型 说明
-E 预处理后即停止,不进行编译、汇编及连接
-S 编译后即停止,不进行汇编及连接
-c 编译或汇编源文件,但不进行连接
-o file 指定输出文件file

(1)预处理 【gcc -E】可以理解为替换,宏定义等。

(2)编译 (编译为汇编)【gcc -S】 生成.s文件   (处理关键字)

  (3)   汇编 【gcc -c】  由上步.s生成.o文件

  (4)   链接 【gcc -o】

上述四部只能依次顺序进行(下一步奏的执行,上一步骤必须执行)。

在预处理阶段,主要处理C语言源文件中的#ifdef、#include、以及#define等命令。在与处理过程中,GCC会忽略掉不需要预处理的输入文件,该阶段会生成中间文件*.i。

3.常见错误

(1)预处理出错

#include “stdio.h” (“”用于当前目录)

#include "abc.h"   (<>只能用于系统目录)

not find

gcc -I 跟查找头文件的目录(指明头文件所在)eg: gcc -I ./a -o file a.c

技术分享图片

(2)编译错误

   主要为语法问题;

 

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

Mac OSX 上的 GCC——多个版本的 gcc

mingw和gcc的关系?mingw具有gcc的全部核心编译功能吗

gcc 和 g++/gcc-c++ 有啥区别?

ubuntu系统下怎么安装gcc编译器

GCC:在 GCC 版本之间伪装

arm gcc 内嵌汇编,gcc该是啥选项呢