栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【linux浅谈013】GCC编译器使用与原理

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【linux浅谈013】GCC编译器使用与原理

1.gcc编译器工作流程

我们以hello.c编译过程为例

1.1预处理阶段

指令

gcc-E hello.c -o hello.i  

预处理中会展开以#起始的行,试图解释为预处理指令(preprocessing directive) ,其中ISO C/C++要求支持的包括#if/#ifdef/#ifndef/#else/#elif/#endif(条件编译)、#define(宏定义)、#include(源文件包含)、#line(行控制)、#error(错误指令)、#pragma(和实现相关的杂注)以及单独的#(空指令)。
预处理器:cpp

1.2编译阶段

指令

gcc-S hello.i -o hello.s

编译器:gcc
将.s文件生成汇编语言

1.3汇编阶段

指令

gcc-c hello.s -o hello.o

汇编器:as
生成二进制代码

1.4链接器

指令

gcc hello.o -o [应用](默认a.out)

连接器:od
链接器把多个二进制的目标文件(object file)链接成一个单独的可执行文件。

1.5直接使用gcc

指令

gcc hello.s -o [应用](默认a.out)

gcc自动调用编译器汇编器连接器等

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/832782.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号