2011年(4)
分类: LINUX
2011-07-13 22:27:23
昨天把用脚本安装交叉工具链摸索了下,安装后编译程序在2410的板子上试了下,OK,下面把脚本程序代码贴出来。
######################################################
#!/bin/sh
#安装目录
INSTALL_DIR=/opt
#工具链目录
BIN_DIR=/opt/FriendlyARM/toolschain/4.4.3/bin
#解压文件
TOOLS_PKG="`dirname $0`/arm-linux-gcc-4.4.3.tar.gz"
#解压后的文件存放在upacked目录下
UNPACK_DIR=`dirname $0`/unpacked
#+e 防止命令带非零值返回时立即退出
set +e
if [ -z "$1" ]
then
echo "CROSS_COMPILER_PATH=$BIN_DIR"
if [ -d $BIN_DIR ]
then
echo "Cross Tools has been installed yet!" >&2
exit 0
fi
eval $0 force
[ $? == 0 ] && exit 0
echo "sorry, you must have super privilege!" >&2
select choose in 'I have root passwd' 'I have sudo privilege' 'Try again' 'Ignore' 'Aboart'
do
case $choose in
*root*)
su -c "$0 force"
[ $? == 0 ] && break
;;
*sudo*)
sudo $0 force
[ $? == 0 ] && break
;;
Try*)
eval $0 force
[ $? == 0 ] && break
;;
Ignore)
exit 0
;;
Aboart)
exit 1
;;
*)
echo "Invalid select, please try again!" >&2
continue
;;
esac
echo "Install cross tools failed!"
done
exit 0
fi
echo "Extract cross tools ..." >&2
tar -xzf $TOOLS_PKG -C $UNPACK_DIR
[ $? != 0 ] && exit 1
cp -r $UNPACK_DIR/opt/FriendlyARM $INSTALL_DIR
if [ -z "`grep "$BIN_DIR" < /etc/profile`" ] ;
then
echo "export path $BIN_DIR" >&2
cat >> /etc/profile << EOF
export PATH="$BIN_DIR:\$PATH"
EOF
[ $? != 0 ] && exit 1
else
echo "skip export toolchains path" >&2
fi
exit 0
###############################################
如果出现./cross.install: 27: Syntax error: "do" unexpected (expecting "fi")这样的提示,请查看/bin/sh是否指向/bin/bash,我的是因为指向/bin/dash所以出现上面的错误提示,在/bin目录下执行ln -s bash sh即可。
执行完cross.install脚本好再执行命令 source /etc/profile 后即可实现交叉编译链的安装。