第2章__搭建Linux交叉编译开发环境.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章__搭建Linux交叉编译开发环境课件

第二章 搭建 Linux交叉编译开发环境 Cross compiling environment 2.1 什么是交叉编译 什么是交叉编译呢?简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture)和操作系统(Operating System)。同一个体系结构可以运行不同的操作系统;同一个操作系统也可以在不同的体系结构上运行。 2.2 建立交叉编译开发工具链 2.2.1 编译工具链 以下是一个基于RedHat linux的交叉编译环境的建立过程。 整个编译过程包括: 下载源文件、补丁和建立编译的目录; 建立内核头文件; 建立二进制工具(binutils); 建立初始编译器(bootstrap gcc); 建立c库(glibc); 建立全套编译器(full gcc)。 2.2 建立交叉编译开发工具链 下载源文件、补丁和建立编译的目录 a, 下载:linux-2.4.21+rmk2;binutils-2.10.1;gcc-2.95.3;glibc-2.2.3;glibc-linuxthreads-2.2.3 b, 建目录:/home/xxx/embedded 下建立三个子目录 build-tools、kernel 和 tools c, 需要输出环境变量 2.2 建立交叉编译开发工具链 d, 建立编译目录: build-binutils——编译binutils的目录 build-boot-gcc——编译gcc 启动部分 的目录 build-glibc——编译glibc的目录 build-gcc——编译gcc 全部的目录 gcc-patch——放gcc的补丁的目录 2.2 建立交叉编译开发工具链 建立内核头文件 a, 把内核源代码放入$PRJROOT /kernel 目录 b,给 Linux 内核打上补丁 c,编译内核生成头文件 d, 建立正确的链接 2.2 建立交叉编译开发工具链 建立二进制工具(binutils) a,解压binutils源文件 b,然后进入build-binutils目录配置和编译binutils 注意: add2line——将要找的地址转成文件和行号,它要使用 debug 信息。 2.2 建立交叉编译开发工具链 ar——产生、修改和解开一个存档文件。 as——gnu 的汇编器。 c++filt——C++ 和 java 中有一种重载函数,所用的重载函数最后会被编译转化成汇编的标号,c++filt 就是实现这种反向的转化,根据标号得到函数名。 gasp——gnu 汇编器预编译器。 2.2 建立交叉编译开发工具链 ld——gnu 的连接器。 nm——列出目标文件的符号和对应的地址。 objcopy——将某种格式的目标文件转化成另外格式的目标文件。 objdump——显示目标文件的信息。 2.2 建立交叉编译开发工具链 ranlib——为一个存档文件产生一个索引,并将这个索引存入存档文件中。 readelf——显示elf格式的目标文件的信息。 size——显示目标文件各个节的大小和目标文件的大小。 strings——打印出目标文件中可以打印的字符串,有个默认的长度,为4。 strip——剥掉目标文件的所有的符号信息。 2.2 建立交叉编译开发工具链 建立初始编译器(bootstrap gcc) a,进入 build-tools 目录,将 gcc 源代码解压 b,然后进入gcc-2.95.3目录给gcc打上补丁 c,配置boostrap gcc, 后面要用bootstrap gcc 来编译 glibc 库 d,编译并安装boot-gcc 2.2 建立交叉编译开发工具链 注意: gcc——gnu 的 C 语言编译器。 unprotoize——将 ANSI C 的源码转化为 KR C 的形式,去掉函数原型中的参数类型。 cpp——gnu的 C 的预编译器。 gcov——gcc 的辅助测试工具,可以用它来分析和优化程序。 2.2 建立交叉编译开发工具链 建立c库(glibc) a, 解压 glibc-2.2.3.tar.gz 和glibc-linuxthreads-2.2.3.tar.gz源代码 b,进入build-glibc目录配置glibc c,编译和安装 glibc 2.2 建立交叉编译开发工具链 注意: 然后还要修改libc.so文件,将GROUP ( /lib/libc.so.6 /lib/libc_nonshared.a) 改为:GROUP ( libc.so.6 libc_nonsh

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档