嵌入式开发交叉编译环境建立.ppt

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式开发交叉编译环境 在进行嵌入式开发之前,首先要建立一个交叉编译环境,这是一套编译器、连接器和libc库等组成的开发环境。文章通过一个具体的例子说明了这些嵌入式交叉编译开发工具的制作过程。 随着消费类电子产品的大量开发和应用和Linux操作系统的不断健壮和强大,嵌入式系统越来越多的进入人们的生活之中,应用范围越来越广。 过程 下载源文件、补丁和建立编译的目录 选择下载软件版本 建立工作目录 输出环境变量 建立编译目录 建立内核头文件 建立二进制工具(binutils) 建立初始编译器(bootstrap gcc) 建立c库(glibc) 建立全套编译器(full gcc) 下载源文件、补丁和建立编译的目录 选定软件版本号 选择软件版本号时,先看看glibc源代码中的INSTALL文件。那里列举了该版本的glibc编译时所需的binutils 和gcc的版本号。例如在 glibc-2.2.3/INSTALL 文件中推荐 gcc 用 2.95以上,binutils 用 2.10.1 以上版本。 下载源文件、补丁和建立编译的目录 建立工作目录  建立用户目录下的首目录  在当前用户目录中建立项目目录,如用户liang,因此用户目录为 /home/liang,先建立一个项目目录embedded。 ? ? 建立次目录:  build-tools、kernel 和 tools   下载源文件、补丁和建立编译的目录 输出环境变量 我们输出如下的环境变量方便我们编译。 $export PRJROOT=/home/liang/embedded $export TARGET=arm-linux $export PREFIX=$PRJROOT/tools $export TARGET_PREFIX=$PREFIX/$TARGET $export PATH=$PREFIX/bin:$PATH ?    下载源文件、补丁和建立编译的目录 建立编译目录 为了把源码和编译时生成的文件分开,一般的编译工作不在的源码目录中,要另建一个目录来专门用于编译。用以下的命令来建立编译你下载的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的补丁的目录 建立内核头文件 把你从 下载的内核源代码放入 $PRJROOT /kernel 目录 进入你的 kernel 目录:$cd $PRJROOT /kernel 解开内核源代码 $tar -xzvf linux-2.4.21.tar.gz 或 $tar -xjvf linux-2.4.21.tar.bz2 小于 2.4.19 的内核版本解开会生成一个 linux 目录,没带版本号,就将其改名。 给 Linux 内核打上你的补丁 $cd linux-2.4.21 $patch -p1 ../patch-2.4.21-rmk2 编译内核生成头文件 $make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig 建立内核头文件 你也可以用 config 和 xconfig 来代替 menuconfig,但这样用可能会没有设置某些配置文件选项和没有生成下面编译所需的头文件。推荐大家用 make menuconfig,这也是内核开发人员用的最多的配置方法。配置完退出并保存,检查一下的内核目录中的 include/linux/version.h 和 include/linux/autoconf.h 文件是不是生成了,这是编译 glibc 是要用到的,version.h 和 autoconf.h 文件的存在,也说明了你生成了正确的头文件。 建立二进制工具(binutils) 建立二进制工具(binutils) 编译并安装 binutils $make $make install $PREFIX/bin 下的生成的文件 $ls $PREFIX/bin arm-linux-addr2line??? arm-linux-gasp??? arm-linux-o

文档评论(0)

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

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

1亿VIP精品文档

相关文档