linux交叉编译环境及工具介绍

linux交叉编译环境及工具介绍

ID:20792467

大小:1.65 MB

页数:23页

时间:2018-10-15

linux交叉编译环境及工具介绍_第1页
linux交叉编译环境及工具介绍_第2页
linux交叉编译环境及工具介绍_第3页
linux交叉编译环境及工具介绍_第4页
linux交叉编译环境及工具介绍_第5页
资源描述:

《linux交叉编译环境及工具介绍》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、LINUX软件开发交叉编译环境及工具介绍冯立强第一部分:交叉编译环境第二部分:Makefile介绍第三部分:一体化电源开发环境第一部分:交叉编译环境为什么要交叉编译:1、代码编写平台X86PC2、编译平台编译器3、可执行文件运行平台ARM综上:有时是因为目标平台上不允许或不能够安装我们所需要的编译器,而我们又需要这个编译器的某些特征;有时是因为目标平台上的资源贫乏,无法运行我们所需要的编译器;有时又是因为目标平台还没有建立,连操作系统都没有,根本谈不上运行什么编译器什么是交叉编译:在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译

2、器。这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture)、操作系统(OperatingSystem)。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。举例来说,我们常说的x86Linux平台实际上是Intelx86体系结构和Linuxforx86操作系统的统称;而x86WinNT平台实际上是Intelx86体系结构和WindowsNTforx86操作系统的简称。Linux下交叉编译环境包括:这是一个由编译器、连接器和解释器组成的综

3、合开发环境。主要包括:1、针对目标系统的编译器gcc;gcc(gnucollectcompiler)是一组编译工具的总称。它主要完成的工作任务是“预处理”和“编译”,以及提供了与编译器紧密相关的运行库的支持,如libgcc_s.so、libstdc++.so等2、针对目标系统的二进制工具binutils;TheGNUBinutilsareacollectionofbinarytools.binutils提供了一系列用来创建、管理和维护二进制目标文件的工具程序,如汇编(as)、链接(ld)、静态库归档(ar)、反汇编(objdump)、elf结构分析工具(readelf)、无效调试

4、信息和符号的工具(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内核头文件。建立交叉编译环境:建立交叉

5、编译环境: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(称为b

6、ootstrapgcc)。在这个过程中只能编译C程序,而不能编译C++程序。创建一个完整的交叉编译版本gcc,需要交叉编译版本的glibc及其头文件,而交叉编译版本的glibc是通过交叉编译版本的gcc创建的。面对这个先有鸡还是先有蛋的问题,解决办法是先编译仅支持C语言的bootstrapgcc编译器,并禁止支持线程。4、创建一个交叉编译版本的glibc。这里最容易出现问题。glibc是一个提供系统调用和基本函数的C语言库,比如open,malloc和printf等,所有动态链接的程序都要用到它。创建glibc需要的时间很长。5、重新创建gcc(称为fullgcc)。因为前面创建

7、gcc的过程没有编译C++编译器,现在glibc已经准备好了,所以这个步骤将产生一个更完整的fullgcc编译器。龙腾蓝天1808交叉编译环境:1、解压缩到指定目录tarzxvftool.tar.gz2、进入linux-devkit目录3、./environment-setup4、进入linux-devkit/bin目录,为arm-arago-linux-gnueabi-g++等工具建立软链接。例如:ln–sarm-arago-linux-gnueabi-g++arm-linux

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。