




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
构建 powerpc 交叉编译环境 完稿 详细见 嵌入式开发系统一般分为 3 种 1 连接式 略 2 可抽换式 略 3 独立式 略 我们通常见到的是连接式 由于一般嵌入式开发系统存储大小有限 通常你都要在你的强大的 pc 机上建 立一个用于目标机的交叉编译环境 这是一个由编译器 连接器和解释器组成 的综合开发环境 交叉编译工具主要由以下三个组件组成 1 binutils 2 gcc 3 glibc 有时出于减小 libc 库大小的考虑 你也可以用别的 c 库来代替 glibc 例如 uClibc dietlibc 和 newlib 工具链主要包括 binutils gcc glibc 三个组件 由于各个组件的开发和发布彼 此独立 所以并非用各组件的任意版本都能顺利完成建立工作 建立一个交叉 编译工具链是一个相当复杂的过程 如果你不想自己经历复杂的编译过程 网 上有一些编译好的可用的交叉编译工具链可以下载 crosstool 工具推荐如下 组合 其中 14 经过我实际验证 1 gcc 3 4 5 cgcc 3 4 5 glibc 2 2 5 binutils 2 15 linux 2 6 8 2 gcc 3 4 5 cgcc 3 3 6 glibc 2 3 2 binutils 2 15 linux 2 6 8 hdrs 2 6 12 0 3 gcc 3 4 5 cgcc 3 4 5 glibc 2 3 5 binutils 2 15 linux 2 6 8 hdrs 2 6 12 0 4 gcc 3 4 5 cgcc 3 4 5 glibc 2 3 6 binutils 2 15 linux 2 6 8 hdrs 2 6 12 0 5 gcc 4 0 2 cgcc 3 3 6 glibc 2 3 2 binutils 2 16 1 linux 2 6 15 4 hdrs 2 6 12 0 6 gcc 4 0 2 cgcc 4 0 2 glibc 2 3 5 binutils 2 16 1 linux 2 6 15 4 hdrs 2 6 12 0 7 gcc 4 0 2 cgcc 4 0 2 glibc 2 3 6 binutils 2 16 1 linux 2 6 15 4 hdrs 2 6 12 0 8 gcc 4 1 0 cgcc 3 3 6 glibc 2 3 2 binutils 2 16 1 linux 2 6 15 4 hdrs 2 6 12 0 9 gcc 4 1 0 cgcc 3 3 6 glibc 2 3 5 binutils 2 16 1 linux 2 6 15 4 hdrs 2 6 12 0 10 gcc 4 1 0 cgcc 3 3 6 glibc 2 3 6 binutils 2 16 1 linux 2 6 15 4 hdrs 2 6 12 0 11 gcc 4 1 1 cgcc 3 3 6 glibc 2 3 5 binutils 2 16 1 linux 2 6 15 4 hdrs 2 6 12 0 12 gcc 4 1 1 cgcc 3 3 6 glibc 2 3 5 binutils 2 16 1 linux 2 6 15 4 hdrs 2 6 12 0 tls 13 gcc 4 1 1 cgcc 3 3 6 glibc 2 3 6 binutils 2 16 1 linux 2 6 15 4 hdrs 2 6 12 0 14 gcc 4 1 1 cgcc 3 3 6 glibc 2 3 6 binutils 2 16 1 linux 2 6 15 4 hdrs 2 6 12 0 tls 工具链主要包括 binutils gcc glibc 三个组件 由于各个组件的开发和发布彼 此独立 所以并非用各组件的任意版本都能顺利完成建立工作 下载内核 kernel org pub linux kernel 下载 binutils http ftp gnu org gnu binutils 下载 gcc http ftp gnu org gnu gcc 下载 c 连接库 glibc 和补丁 http ftp gnu org gnu glibc 开发机 Intel R Celeron R CPU 2 26GHz fedora core 7 目标板 powerpc 4xx 一 准备工作一 准备工作 cd home lsf 这里用的用户名是 lsf mkdir embedded 再在这个项目目录 embedded 下建立三个目录 build tools kernel 和 tools cd embedded mkdir build tools kernel tools build tools 用来存放你下载的 binutils gcc 和 glibc 的源代码和用来编译 这些源代码的目录 kernel 用来存放你的内核源代码和内核补丁 tools 用来存放编译好的交叉编译工具和库文件 为了把源码和编译时生成的文件分开 一般的编译工作不在的源码目录中 要 另建一个目录来专门用于编译 用以下的命令来建立编译你下载的 binutils gcc 和 glibc 的源代码的目录 cd PRJROOT build tools mkdir build binutils build boot gcc build gcc build glibc gcc patch build binutils 编译 binutils 的目录 build boot gcc 编译 gcc 启动部分的目录 build glibc 编译 glibc 的目录 build gcc 编译 gcc 全部的目录 gcc patch 放 gcc 的补丁的目录 将 binutils 2 10 1 gcc 2 95 3 glibc 2 2 3 和 glibc linuxthreads 2 2 3 的源代码放入 build tools 目录中 export PRJROOT home liushaofeng embedded export TARGET powerpc linux export PREFIX PRJROOT tools export TARGET PREFIX PREFIX TARGET export PATH PREFIX bin PATH 二 内核头文件设置二 内核头文件设置 cd PRJROOT kernel tar zxvf linux 2 4 20 tar gz cd linux 2 4 20 make ARCH ppc CROSS COMPILE powerpc linux menuconfig 接下来为你的交叉编译环境建立你的内核头文件的链接 mkdir p TARGET PREFIX include ln s PRJROOT kernel linux 2 4 20 include linux TARGET PREFIX include linux ln s PRJROOT kernel linux 2 4 20 include asm ppc TARGET PREFIX include asm ln s PRJROOT kernel linux 2 4 20 include asm generic TARGET PREFIX include asm generic 也可以把 Linux 内核头文件拷贝过来用 mkdir p TARGET PREFIX include cp r include linux TARGET PREFIX include cp r include asm ppc TARGET PREFIX include cp r include asm generic TARGET PREFIX include 三 建立二进制工具 三 建立二进制工具 binutils binutils 是一些二进制工具的集合 其中包含了我们常用到的 as 和 ld 首先 我们解压我们下载的 binutils 源文件 cd PRJROOT build tools tar xvzf binutils 2 10 tar gz 然后进入 build binutils 目录配置和编译 binutils cd build binutils binutils 2 10 configure target TARGET prefix PREFIX target 选项是指出我们生成的是 ppc linux 的工具 prefix 是指出我们 可执行文件安装的位置 会出现很多 check 最后产生 Makefile 文件 有了 Makefile 后 我们来 编译并安装 binutils 命令很简单 make make install 四 建立二进制工具 四 建立二进制工具 binutils 进入 build tools 目录 将下载 gcc 源代码解压 cd PRJROOT build tools tar xvzf gcc 2 95 3 tar gz 在我们编译并安装 gcc gcc 2 95 3 configure target TARGET prefix PREFIX without headers enable language c with newlib ppc make all gcc make install gcc 五 建立五 建立 c 连接库连接库 cd PRJROOT build tools tar xvzf glibc 2 2 3 tar gz tar xvzf glibc linuxthreads 2 2 3 tar gz directory glibc 2 2 3 cd build glibc CC powerpc linux gcc glibc 2 2 3 configure host TARGET prefix usr enable add ons with headers TARGET PREFIX include make make install root TARGET PREFIX prefix install 安装过程可能出现有两个文档目录不能成功安装 可以用 i 选项略过错误继续 安装 make i install root TARGET PREFIX prefix install 六 编译完整的六 编译完整的 gcc 第二次完整编译 gcc 时 需要修改生成的 lib 库中的 libc so 文件 home liushaofeng embedded tools ppc linux lib libc so 将 GROUP lib libc so 6 lib libc nonshared a 改为 GROUP libc so 6 libc nonshared a vim TARGET PREFIX lib libc so 在建立 boot gcc 的时候 我们只支持了 C 到这里 我们就要建立全套编译 器 来支持 C 和 C enable languages c c 告诉 full gcc 支持 c 和 c 语言 然后编 译和安装你的 full gcc cd PRJROOT build tools build gcc gcc 2 95 3 configure target TARGET prefix PREFIX enable languages c c make all make install 到此交叉编译工具链建立完成 验证 powerpc linux gcc simple c o simple file simple 说明 add2line 将你要找的地址转成文件和行号 它要使用 debug 信息 ar 产生 修改和解开一个存档文件 as gnu 的汇编器 c filt c 和 java 中有一种重载函数 所用的重载函数最后会被编译转化 成汇编的标号 c filt 就是实现这种反向的转化 根据标号得到函数名 c gnu 的 c 编译器 cpp gnu 的 c 的预编译器 gasp gnu 汇编器预编译器 gcc gnu 的 c 语言编译器 gcov gcc 的辅助测试工具 可以用它来分析和优程序 g gnu 的 c 编译器 ld gnu 的连接器 nm 列出目标文件的符号和对应的地址 objcopy 将某种格式的目标文件转化成另外格式的目标文件 objdump 显示目标文件的信息 ranlib 为一个存档文件产生一个索引 并将这个索引存入存档文件中 readelf 显示 elf 格式的目标文件的信息 size 显示目标文件各个节的大小和目标文件的大小 strings 打印出目标文件中可以打印的字符串 有个默认的长度为 4 strip 剥掉目标文件的所有的符号信息 unprotoize 将 ansi c 的源码转化为 k r c 的形式 去掉函数原型中的参 数类型 protoize 与 unprotoize 相反 将 k r c 的源码转化为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025届高考物理大一轮复习课件 第十二章 第70课时 专题强化:电磁感应中的动量问题
- DeepSeek职教应用场景规划方案
- 《婴宁》原文注释译文赏析
- 夏朝考试题及答案
- 武汉高校试题大全及答案
- 河南省驻马店市汝南县2025届九年级下学期中考二模历史试卷(含答案)
- 甘肃省天水市六校2025届高三下学期第三次联考(三模)语文试卷(含答案)
- 2025年浙江省“山海联盟”初中学业水平考试模拟卷(五)数学试题
- 玻璃板块安装防坠落措施
- 通过大数据分析优化家电产品设计
- “沙钢杯”第十一届全国钢铁行业职业技能竞赛(电工)理论试题库-中(多选题)
- 人音版 三年级下册《摇船调》教案
- 人教版五年级数学下册同分母分数加减法100道口算题
- 重庆市沙坪坝区南开中学校2023-2024学年八年级下学期期末英语试题(无答案)
- 日本明治维新完整课件
- DL-T839-2003大型锅炉给水泵性能现场试验方法
- 海南省三亚2024年八年级物理第二学期期末统考试题及答案解析
- 人教版数学八年级下册一次函数综合大题练习
- JC-T408-2005水乳型沥青防水涂料
- FZT 74005-2016 针织瑜伽服行业标准
- 2024年广东佛山市顺德区公安局辅警招聘笔试参考题库附带答案详解
评论
0/150
提交评论