欢迎来到天天文库
浏览记录
ID:33446019
大小:137.51 KB
页数:23页
时间:2018-05-24
《嵌入式开发交叉编译环境建立》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、嵌入式开发交叉编译环境在进行嵌入式开发之前,首先要建立一个交叉编译环境,这是一套编译器、连接器和libc库等组成的开发环境。文章通过一个具体的例子说明了这些嵌入式交叉编译开发工具的制作过程。随着消费类电子产品的大量开发和应用和Linux操作系统的不断健壮和强大,嵌入式系统越来越多的进入人们的生活之中,应用范围越来越广。过程下载源文件、补丁和建立编译的目录选择下载软件版本建立工作目录输出环境变量建立编译目录建立内核头文件建立二进制工具(binutils)建立初始编译器(bootstrapgcc)建立c库(glibc)建立全套编译器(fullgcc)下载源文件、补
2、丁和建立编译的目录选定软件版本号选择软件版本号时,先看看glibc源代码中的INSTALL文件。那里列举了该版本的glibc编译时所需的binutils和gcc的版本号。例如在glibc-2.2.3/INSTALL文件中推荐gcc用2.95以上,binutils用2.10.1以上版本。下载源文件、补丁和建立编译的目录建立工作目录建立用户目录下的首目录在当前用户目录中建立项目目录,如用户liang,因此用户目录为/home/liang,先建立一个项目目录embedded。建立次目录:build-tools、kernel和toolsbuild-tools-用来存放你
3、下载的binutils、gcc和glibc的源代码和用来编译这些源代码的目录。kernel-用来存放你的内核源代码和内核补丁。tools-用来存放编译好的交叉编译工具和库文件下载源文件、补丁和建立编译的目录输出环境变量我们输出如下的环境变量方便我们编译。$exportPRJROOT=/home/liang/embedded$exportTARGET=arm-linux$exportPREFIX=$PRJROOT/tools$exportTARGET_PREFIX=$PREFIX/$TARGET$exportPATH=$PREFIX/bin:$PATH下载源
4、文件、补丁和建立编译的目录建立编译目录为了把源码和编译时生成的文件分开,一般的编译工作不在的源码目录中,要另建一个目录来专门用于编译。用以下的命令来建立编译你下载的binutils、gcc和glibc的源代码的目录。$cd$PRJROOT/build-tools$mkdirbuild-binutilsbuild-boot-gccbuild-gccbuild-glibcgcc-patchbuild-binutils-编译binutils的目录build-boot-gcc-编译gcc启动部分的目录build-glibc-编译glibc的目录build-gcc-编译
5、gcc全部的目录gcc-patch-放gcc的补丁的目录gcc-2.95.3的补丁有gcc-2.95.3-2.patch、gcc-2.95.3-no-fixinc.patch和gcc-2.95.3-returntype-fix.patch,可以从http://www.linuxfromscratch.org/下载到这些补丁。再将你下载的binutils-2.10.1、gcc-2.95.3、glibc-2.2.3和glibc-linuxthreads-2.2.3的源代码放入build-tools目录中看一下你的build-tools目录,有以下内容:[root@c
6、j******]$lsbinutils-2.10.1.tar.bz2 build-gccgcc-patchbuild-binutlsbuild-glibcglibc-2.2.3.tar.gzbuild-boot-gccgcc-2.95.3.tar.gz glibc-linuxthreads-2.2.3.tar.gz建立内核头文件把你从www.kernel.org下载的内核源代码放入$PRJROOT/kernel目录进入你的kernel目录:$cd$PRJROOT/kernel解开内核源代码$tar-xzvflinux-2.4.21.tar.gz或$
7、tar-xjvflinux-2.4.21.tar.bz2小于2.4.19的内核版本解开会生成一个linux目录,没带版本号,就将其改名。给Linux内核打上你的补丁$cdlinux-2.4.21$patch-p1<../patch-2.4.21-rmk2编译内核生成头文件$makeARCH=armCROSS_COMPILE=arm-linux-menuconfig建立内核头文件你也可以用config和xconfig来代替menuconfig,但这样用可能会没有设置某些配置文件选项和没有生成下面编译所需的头文件。推荐大家用makemenuconfig,这也是内核
8、开发人员用的最多的配置方
此文档下载收益归作者所有