- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux交叉编译环境和工具介绍
LINUX软件开发交叉编译环境 及工具介绍 冯立强 第一部分:交叉编译环境 第二部分:Makefile介绍 第三部分:一体化电源开发环境 第一部分:交叉编译环境 为什么要交叉编译: 1、代码编写平台 X86 PC 2、编译平台 编译器 3、可执行文件运行平台 ARM 综上:有时是因为目标平台上不允许或不能够安装我们所需要的编译器,而我们又需要这个编译器的某些特征;有时是因为目标平台上的资源贫乏,无法运行我们所需要的编译器;有时又是因为目标平台还没有建立,连操作系统都没有,根本谈不上运行什么编译器 什么是交叉编译: 在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译器。这个编译过程就叫交叉编译。?简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture)、操作系统(Operating System)。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。举例来说,我们常说的x86 Linux平台实际上是Intel x86体系结构和Linux for x86操作系统的统称;而x86 WinNT平台实际上是Intel x86体系结构和Windows NT for x86操作系统的简称。 Linux下交叉编译环境包括: 这是一个由编译器、连接器和解释器组成的综合开发环境。 主要包括: ?????1、针对目标系统的编译器gcc; gcc(gnu collect compiler)是一组编译工具的总称。它主要完成的工作任务是“预处理”和“编译”,以及提供了与编译器紧密相关的运行库的支持,如libgcc_s.so、libstdc++.so等 ?????2、针对目标系统的二进制工具binutils; The GNU Binutils are a collection of binary tools. binutils提供了一系列用来创建、管理和维护二进制目标文件的工具程序,如汇编(as)、链接(ld)、静态库归档(ar)、反汇编(objdump)、elf结构分析工具(readelf)、无效调试信息和符号的工具(strip)等。通常,binutils与gcc是紧密相集成的,没有binutils的话,gcc是不能正常工作的。 ?????3、目标系统的标准c库glibc,有时出于减小libc?库大小的考虑,你也可以用别的c库来代替glibc,例如uClibc、newlib等; glibc是gnu发布的libc库,也即c运行库。glibc是linux系统中最底层的api(应用程序开发接口),几乎其它任何的运行库都会倚赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现 ?????4、目标系统的linux内核头文件。 建立交叉编译环境: 建立交叉编译环境: 1、建立内核头文件 主要是生成include/linux/version.h?和?include/linux/autoconf.h?文件,这是编译?glibc?是要用到的,version.h?和?autoconf.h?文件的存在,也说明了你生成了正确的头文件。 2、创建binutils。 这个过程结束后,会创建类似arm-linux-ld等工具。binutils是一组开发工具,包括链接器、汇编器以及其他用于目标文件和档案的工具.首先安装软件包binutils是非常重要的,因为glibc和gcc会针对可用的连接器和汇编器进行多种测试,以决定打开某些特性。 3、创建一个交叉编译版本的gcc(称为bootstrap gcc)。 在这个过程中只能编译C程序,而不能编译C++程序。创建一个完整的交叉编译版本gcc,需要交叉编译版本的glibc及其头文件,而交叉编译版本的glibc是通过交叉编译版本的gcc创建的。面对这个先有鸡还是先有蛋的问题,解决办法是先编译仅支持C语言的bootstrap gcc编译器,并禁止支持线程。 4、创建一个交叉编译版本的glibc。 这里最容易出现问题。glibc是一个提供系统调用和基本函数的C语言库,比如open,malloc和printf等,所有动态链接的程序都要用到它。创建glibc需要的时间很长。 5、重新创建gcc(称为full gcc)。 因为前面创建gcc的过程没有编译C++编译器,现在glibc已经准备好了,所以这个步骤将产生一个更完整的full gcc编译器。 龙腾蓝天1808交叉编译环境: 1、解压缩到指定目录 tar z
您可能关注的文档
最近下载
- GBT-19638.2-(2005)-固定型阀控密封式铅酸蓄电池.docx VIP
- 高二化学-盐类的水解-PPT课件-人教版gg''.ppt VIP
- 2024年5月25日贵州省税务局遴选公务员笔试真题及答案解析(通用卷).doc VIP
- 胸痛应知应会手册.pdf
- 外来器械及植入物的(供应链及消毒灭菌)双闭环管理课件.pptx VIP
- NB-T47008-2010承压设备用碳素钢和合金钢锻件.pdf VIP
- NFPA 72-2022 国家火灾报警和信号代码(中文翻译版).pdf VIP
- 高一《平面向量数量积》习题.pdf VIP
- DL_T 596-2021 电力设备预防性试验规程.docx VIP
- 肺栓塞急救演练.pptx VIP
文档评论(0)