Username:
Password:
Remember Me?
ARM Linux 交叉编译 工具链 制作攻略 (转)
< 上一篇
|
下一篇 >
来源: ChinaUnix博客 作者: ChinaUnix博客 发布时间:2008-01-01 10:45:00
ARM Linux 交叉编译 工具链 制作攻略
0、制作之前确保您的机子上有如下几个工具:bison flex build-essential。
build-essential主要是用于提供GCC、GLIBC等必要的编译资源,一般做研发的人员机子上应该都会有的。假如没有,对于UBUNTU用户:sudo apt-get install build-essential bison flex,其他用户自己看着办,呵呵!
1、从
http://kegel.com/crosstool
处下载crosstool-0.43.tar.gz并解开存于$HOME下。
假如您想要arm9tdmi上的工具链(其他工具链方法相同),进入
crosstool-0.43目录,用文本编辑器打开demo-arm9tdmi.sh,内容如下:
#!/bin/sh
# This script has one line for each known working toolchain
# for this architecture. Uncomment the one you want.
# Generated by generate-demo.pl from buildlogs/all.dats.txt
set -ex
TARBALLS_DIR=$HOME/downloads
//该行表示您即将下载的工具源码压缩包的存放目录!
RESULT_TOP=/opt/crosstool
//该行表示将要生成的工具链的存放目录,最好改到有写权限的目录!
export TARBALLS_DIR RESULT_TOP
GCC_LANGUAGES="c,c++"
//该行表示将要生成的工具链支持的语言的种类!
export GCC_LANGUAGES
# Really, you should do the mkdir before running this,
# and chown /opt/crosstool to yourself so you don’t need to run as root.
mkdir -p $RESULT_TOP
#eval `cat arm9tdmi.dat gcc-3.2.3-glibc-2.2.5.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-3.2.3-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-3.2.3-glibc-2.3.2-tls.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-3.3.6-glibc-2.2.5.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-3.3.6-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-3.3.6-glibc-2.3.2-tls.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-3.4.5-glibc-2.2.5.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-3.4.5-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-3.4.5-glibc-2.3.2-tls.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-3.4.5-glibc-2.3.5.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-3.4.5-glibc-2.3.5-tls.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-3.4.5-glibc-2.3.6.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-3.4.5-glibc-2.3.6-tls.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-4.0.2-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-4.0.2-glibc-2.3.2-tls.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-4.0.2-glibc-2.3.5.dat` sh all.sh --notest
eval `cat arm9tdmi.dat gcc-4.0.2-glibc-2.3.5-tls.dat` sh all.sh --notest
//我选择本行!!!
#eval `cat arm9tdmi.dat gcc-4.0.2-glibc-2.3.6.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-4.0.2-glibc-2.3.6-tls.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-4.1.0-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat arm9tdmi.dat gcc-4.1.0-glibc-2.3.2-tls.dat` sh all.sh --notest
echo Done.
//上面表示您要选工具链的版本号!"#"起注释功能!我们能够选择一行!
我把RESULT_TOP=/opt/crosstool改成RESULT_TOP=$HOME/toolchains,并在HOME目录下建立downloads 和toolchains两个目录,分别用于存放源码压缩包和将要生成的工具链。
打开crosstool-0.43目录下的arm9tdmi.dat文档,内容如下:
KERNELCONFIG=`pwd`/arm.config
TARGET=arm-9tdmi-linux-gnu
GCC_EXTRA_CONFIG="--with-cpu=arm9tdmi --enable-cxx-flags=-mcpu=arm9tdmi"
TARGET_CFLAGS="-O"
这个文档一般用于配置一些变量,一般不用改,用默认即可!
打开crosstool-0.43目录下的
gcc-4.0.2-glibc-2.3.5-tls.dat
文档,内容如下:
BINUTILS_DIR=binutils-2.16.1
GCC_DIR=
gcc-4.0.2
GLIBC_DIR=
glibc-2.3.5
LINUX_DIR=
linux-2.6.15.4
LINUX_SANITIZED_HEADER_DIR=
linux-libc-headers-2.6.12.0
GLIBCTHREADS_FILENAME=
glibc-linuxthreads-2.3.5
GLIBC_EXTRA_CONFIG="$GLIBC_EXTRA_CONFIG --with-tls --with-__thread --enable-kernel=2.4.18"
然后您就能够到网上去下载上面红色标记的几个源码包,注意对应的版本号,下载后存放在downloads目录下。注意,无需解压!!您甚至能够去掉LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0这一行(当然也就中需要下载这个包了)!您能够到中国的映像站点去下载这些包:
http://mirrors.shlug.org/
http://www.cn.kernel.org/pub/linux
http://www.cn.kernel.org/pub/software
ftp://ftp.cn.kernel.org/pub/linux
ftp://ftp.cn.kernel.org/pub/software
NOW,IT’S OK!
2、进入crosstool-0.43目录,输入./demo-arm9tdmi.sh,然后经过几个小时的编译,就能够在您的toolchains目录中看到您想要的工具链,头文档,库文档等东东了!您能够把工具链所在目录加到环境变量PATH中即可使用工具链了!
注意
:crosstool-0.43目录下的PATCH目录中有各个工具链的补丁,假如在编译过程中有错误,能够在crosstool-0.43目录下build目录中的解压后的源文档中打上补丁(我没打补丁也编译成功了,呵呵)。另外,假如不想每次编译时都有浪费时间的解压过程,能够在
eval `cat arm9tdmi.dat gcc-4.0.2-glibc-2.3.5-tls.dat` sh all.sh --notest 末尾处加--nounpack
表示不解压(当然前提是您已自行解压源码包到了对应的目录
/build/gcc-4.0.2-glibc-2.3.5-tls/arm-9tdmi-linux-gnu
里了,也能够在这时给其打补丁).
本文来自ChinaUnix博客,假如查看原文请点:
http://blog.chinaunix.net/u2/62343/showart_493340.html
喜欢本文,那就收藏到:
上一篇:
反汇编链接
下一篇:
C 编程最佳实践
相关评论
我也要评论
还没有关于此文章的相关评论!
首页
上一页
下一页
尾页
昵称:
(为空则显示guest)
评论分数:
★
★ ★
★★★
★★★★
★★★★★
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
相关推荐
xml轻松学习手册(3)xml的术语_xml教程
xml轻松学习手册(4)xml语法_xml教程
xml轻松学习手册(5)xml实例解析_xml教程
了解web页面工具语言xml(一)产生背景_xml教程
了解web页面工具语言xml(二)定义_xml教程
了解web页面工具语言xml(三)支持工具_xml教程
了解web页面工具语言xml(四)应用分类_xml教程
了解web页面工具语言xml(五)好处_xml教程
了解web页面工具语言xml(六)展望_xml教程
xml技术上传文档_xml技巧
相关资讯
perl实例分析教程之十一
perl实例分析教程之十
perl实例分析教程之九
perl实例分析教程之八
perl实例分析教程之七
perl实例分析教程之六
perl实例分析教程之五
perl实例分析教程之四
perl实例分析教程之三
perl实例分析教程之二
点击发布文章
导航
主页
设为首页
加入收藏
联系我们
赞助商
文章类别
行业资讯
域名资讯
虚拟主机
托管租用
VPS
CDN
网站运营
技术资讯
Mac OS
网络设备
路由技术
网络技术
HTML/DHTML
源码天堂
网络编程
Java
Perl
C/C++
Shell
数据库其他
DB2
Sybase
存储备份
硬件技术
网站建设
通信技术
虚拟化技术
安全其他
安全工具
加密和破解
数据库安全
程序安全
网络安全
系统安全
防火墙
VPN
网管技术其他
Informix
Oracle
PostgreSQL
Dreamweaver教程
windows操作系统
XML编程
NET编程
JSP编程
PHP编程
ASP编程
Mssql
Mysql
Access
Coreldraw
flash
web服务器
ftp服务器
mail服务器
邮件系统
IBM-AIX
HP-UX
Sco
Solaris
FreeBSD
Linux
Proxy
CSS教程
Javascript教程
Ajax
dns服务器
Photoshop教程
站长资讯
冲浪宝典
订阅
Rss Feed
主机赞助商连接:
华夏名网虚拟主机域名注册
关于我们 | 网站声明 | 联系我们 | 广告服务 IDC中文资讯站-客观公证的IDC产业权威媒体
Copyright
@
2007-2008 IDCNEWS.NET, All Rights Reserved
蜀ICP备07504800号