arm交叉编译链的制作

arm交叉编译链的制作

ID:8806952

大小:25.64 KB

页数:10页

时间:2018-04-08

arm交叉编译链的制作_第1页
arm交叉编译链的制作_第2页
arm交叉编译链的制作_第3页
arm交叉编译链的制作_第4页
arm交叉编译链的制作_第5页
资源描述:

《arm交叉编译链的制作》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、ARM交叉编译链的制作1.直接下载已经编译好的文件。例如:http://arm.linux.org.uk,这里提供已经编译好的cross,如cross-3.3.2.tar.bz2,cross-3.0.tar.bz2。直接下载某个包后解压,然后创建合适的链接或者输出环境变量即可调用。这种做法操作很简单,但是不能根据自己的需求去定义,只能选择已经编译好的东西。2.自己动手利用crosstool来制作。A.在CROSSTOOL官方网站下载源码包,解压,进入解压后的目录。$sudowgethttp://kegel.com/crosstool/crosstool-0.42.tar

2、.gz$sudotar-xzvfcrosstool-0.42.tar.gz$cdcrosstool-0.42B.以ROOT建立目录,存放生成的交叉编译链改变该目录的所有者为普通用户例如,存放生成的交叉编译链目录为/opt/crosstool,如下所示:sudomkdir/opt/crosstoolsudochown$USER/opt/crosstoolC.修改针对目标板的脚本文件。$sudovidemo-arm.sh(1)这几个环境变量可以根据实际情况修改TARBALLS_DIR=$HOME/downloadsRESULT_TOP=/opt/crosstoolexpor

3、tTARBALLS_DIRRESULT_TOPGCC_LANGUAGES="c,c++"exportGCC_LANGUAGES(2)在若干行eval语句中选择要建立的交叉编译链的组合,去掉该行eval的#号。例如要做gcc为3.3.3,glibc为2.3.2的工具链eval`catarm.datgcc-3.4.5-glibc-2.3.6.dat`shall.sh--notestD.修改目标板脚本文件demo-arm.sh中eval那一行出现的体系结构的配置文件$sudoviarm.datKERNELCONFIG=`pwd`/arm.configTARGET=arm-un

4、known-linux-gnuTARGET_CFLAGS="-O"可以修改TARGET变量为TARGET=arm-S3C2410-linux-gnu(你的arm型号)E.修改目标板脚本文件demo-arm.sh中eval那一行出现的工具链的匹配文件$sudovigcc-3.4.5-glibc-2.3.6.datBINUTILS_DIR=binutils-2.15GCC_DIR=gcc-3.3.3GLIBC_DIR=glibc-2.3.2LINUX_DIR=linux-2.4.26GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2

5、以上变量要根据实际情况修改。不过例如想下载linux2.6的版本,并且下载gdb最新的版本。内核具体的版本要参照http://kernel.org/和ftp://ftp.gnu.org/pub/gnu/gdb。例如。LINUX_DIR=linux-2.6.12.1GDB_DIR=gdb-6.0F.以普通用户运行脚本$sudoshdemo-arm.sh进入漫长的等待过程中……3.安装完成后路径设置和测试。编辑~/.bash_profile,在其中exportPATH前加入这样一行,PATH=/opt/crosstool/gcc-3.4.5-glibc-2.3.6/arm-

6、S3C2410-linux-gnu/bin:$PATH,改完后我的是这样的#UserspecificenvironmentandstartupprogramsPATH=$PATH:$HOME/binPATH=/opt/crosstool/gcc-3.4.5-glibc-2.3.6/arm-S3C2410-linux-gnu/bin:$PATHexportPATHunsetUSERNAME然后就好了。可以开始测试使用了。测试的方法很简单,随便找个程序源码编译一下就好了。这里用的这些编译器生成的是二进制文件,和平时的gcc生成的可执行文件并不相同。例如我测试时的文件是tes

7、t.c,#includeintmain(){printf("Hello!");return0;}调用新的arm-linux-gcc来编译:arm-S3C2410-linux-gnu-gcc-otesttest.c,这时生成的test文件是一个二进制的可执行文件,并不是我们平时常用的,所以在PC上执行这个文件的话是不行的,系统会提示:bash:./test:cannotexecutebinaryfile。所以不能用这种方法来测试交叉编译是否成功。而应改采用file命令,例如我的是这样的:filetest结果如下:test:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。