- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
最近下载
- 民用建筑通用规范GB55031-2022(完整清晰版).pdf
- SY_T 4113.1-2018 管道防腐层性能试验方法 第1部分:耐划伤测试.docx VIP
- 江苏省无锡市江阴市长泾片2024-2025学年七年级上学期期中考试语文试题(含答案).pdf VIP
- 燃气安全日常巡检与维护方法.pptx
- 市直机关单位整治群众身边不正之风问题集中整治工作阶段性工作总结.docx VIP
- 地下连续墙施工方案(附:工程临时用电施工方案).doc
- 汽轮发电机组转子找中心计算公式.xls VIP
- 惠州市高2024届高三第二次调研考试政治试卷(含答案).docx
- SY∕T 4113.8-2020 管道防腐层性能试验方法 第8部分:耐磨性能测试.pdf
- HRN日本报知机百仕达五斯消防主机操作说明书.pdf
文档评论(0)