找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1022|回复: 0
打印 上一主题 下一主题
收起左侧

Linux应用编程之GCC编译器及编译过程

[复制链接]
跳转到指定楼层
楼主
ID:1040469 发表于 2022-7-26 11:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

1GCC编译器简介
    GCC编译器(GNU C Compiler)是GNU开发的一款多平台编译器,根据名字GCC是一款编译C程序的编译器。但随着该编译器的扩展逐渐支持多平台、多语言的编译套件(GUN Compiler Colloction )。

2什么是编译器
    编译器并不是什么高级的东西,仅仅只是一个根据相应平台要求把用户所编写的代码删除、修改、翻译等等处理后生成对应的可执行文件的一种软件程序,其本质也是属于软件,所以大家可以把编译器看成一个翻译软件。

3交叉编译器
    在嵌入式Linux开发过程中,比如我们开发ARM平台上的运行程序,一般会在windows平台上进行代码的编译并生成对应的可执行文件烧录到对应的平台中运行,然而这个时候使用编译器就是交叉编译器。

4为何需使用交叉编译
    嵌入式相比计算机最大的区别个人觉得在于资源分配上,相对而言嵌入式平台的运行速度、内存大小等等都比计算机平台小很多,既然编译器也是软件那就需要占用一定的资源,随着编译器的扩展需要的硬件平台要求也提高了,所以一般的嵌入式平台难以满足编译要求,不过对于资源丰富,性能强劲的平台当然另当别论了。

    所以为了满足在PC上就可以开发嵌入式软件就有了前面所提到的交叉编译环境,编译器可以通过被指定所要运行的目标平台来对相应程序进行编译生成目标平台的可执行文件,当然此时所生成的可执行文件不可在当前环境下运行。

5编译的基本流程
    既然学习Linux应用编程,那么必定需要将平时所编写的程序通过编译器最终生成可执行文件,下面大致看看GCC如何编译程序的:
编译过程解析

1)预处理阶段:主要对源文件进行文件包含和预处理语句的分析处理;
2)编译阶段:把预处理完的.i文件进行一系列词法分析、语法分析、语义分析以及优化后生成相应的汇编代码文件;
3)汇编阶段:使用汇编器将汇编代码转换成机器可以执行的指令并生成.o文件;
4)链接阶段:使用链接器把所有的目标文件和库文件链接起来放在合适的位置生成.out可执行文件。

6简单体验一下GCC
    下面小哥就简单的在ubuntu下面写了一个.c程序并使用gcc编译运行,其实与我们平时在windows环境中编译运行类似,仅仅只是把windows点击按钮换成了对应的命令行罢了。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表