【嵌入式】使用Cross Toolchain构建交叉工具链

本文记录了作者在编译Linux内核时遇到的问题,以及如何克服困难,自行构建交叉工具链的过程。虽然最终未能解决特定问题,但详细介绍了构建步骤,对于学习嵌入式开发和交叉编译的读者具有参考价值。
摘要由CSDN通过智能技术生成

Preface

   前面编译linux内核的时候,用各种cross版本都不行啊,真是纠结,于是就想着自己也要会编译交叉工具的方法,然后各种尝试,各种问题啊,最后还是没解决(还有其它事情),步骤我都走熟了,记下来吧



Preparation

root@lcw:/home/mystery/cross_toolchain# ls
binutils-2.15.tar.bz2  glibc-2.3.2.tar.bz2
crosstool-0.43         glibc-linuxthreads-2.3.2.tar.bz2
crosstool-0.43.tar.gz  linux-2.6.14.tar.bz2
gcc-4.1.0.tar.bz2      linux-libc-headers-2.6.12.0.tar.bz2


    后面还下载了gdb-6.5.tar.bz2
 
 
 
Step1
   当然是解压crosstool-0.42.tar.gz
Step2
   我们需要自己配置文件,我取名为arm.sh
< arm.sh>
#!/bin/sh
set -ex
TARBALLS_DIR=/home/mystery/cross_toolchain/crossTools # 定义工具链源码所存放位置。
RESULT_TOP=/opt/crosstool            # 定义工具链的安装目录
export TARBALLS_DIR RESULT_TOP
GCC_LANGUAGES="c,c++"                # 定义支持C, C++语言
export GCC_LANGUAGES
# 创建/opt/crosstool目录
mkdir -p $RESULT_TOP
# 编译工具链,该过程需要数小时完成。
eval 'cat arm.dat gcc-4.1.0-glibc-2.3.2.dat' sh all.sh --notest
echo Done.



Step3

我们还需要改二个配置文件gcc-4.1.0-glibc-2.3.2.dat与arm.dat,这个根据自己下载的文件需要来改
<gcc-4.1.0-glibc-2.3.2.dat>
BINUTILS_DIR=binutils-2.15
GCC_DIR=gcc-3.3.6
GLIBC_DIR=glibc-2.3.2
GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2
LINUX_DIR=linux-2.6.14
LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0


<arm.dat>

KERNELCONFIG='pwd'/arm.config # 内核的配置
TARGET=arm-linux-                # 编译生成的工具链名称
TARGET_CFLAGS="-O"                # 编译选项



Step4


   执行脚本,将Crosstool的脚本文件和配置文件准备好之后,开始执行arm.sh脚本来编译交叉编译工具。如果顺利的话,这步经过数个小时后,就能生成交叉编译工具了,数个小时啊,准备迎接各种error吧


<Question1>

+ abort Don't run all.sh or crosstool.sh as root, it's dangerous
+ echo Don't run all.sh or crosstool.sh as root, it's dangerous
Don't run all.sh or crosstool.sh as root, it's dangerous


<Solution>:这脚本够纠结的,用普通帐户时,执行命令又权限不够,用root帐户,又不让你运行,那么

   不用root帐户又有权限的办法就是chmod,自己给自己权限吧,我是chmod+chgrp+chown都改了

<Question2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值