交叉编译工具链的安装配置

2020-06-05 09:06

交叉工具链的生成

http://blog.chinaunix.net/uid-9185047-id-3158569.html

软件平台: ubuntu 10.10 主机编译器: gcc 4.5.1 硬件平台: s3c2410

1、准备环境

sudo apt-get install bison flex texinfo automake libtool cvs patch libncurses5-dev aria2 curl g++ subversion gawk cvsd expat gperf libexpat-dev

注:有的没安装,第4步无法生成makefile,要先安装gperf

2、下载crosstool-ng软件包

crosstool-ng-1.17.0.tar.bz2

3、相应目录的建立

sudo mkdir -p /usr/local/arm

sudo chmod 777 /usr/local/arm // 将arm目录权限设置为777 cd /usr/local/arm mkdir 4.7.2

sudo mkdir -p /home/crosstool cd /home/s3c2410/crosstool

sudo mkdir crosstool-build crosstool-install src-4.7.2 (编译目录、 安装目录、 目标源码目录) 4、安装crosstool-ng

cp crosstool-ng-1.17.0.tar.bz2 /home/s3c2410/crosstool/ 解压crosstool-ng-1.17.0.tar.bz2, tar -xvf crosstool-ng-1.17.0.tar.bz2 进入目录,进行配置:

cd /home/s3c2410/crosstool/crosstool-ng-1.17.0

将/home/s3c2410/crosstool/crosstool-install/lib/ct-ng.1.17.0/下的ct-ng.comp cp到/etc/bash_completion.d

配置安装目录为/home/s3c2410/crosstool/crosstool-install 注:有的没安装gperf,无法生成makefile,要先安装gperf

sudo ./configure --prefix=/home/crosstool/crosstool-install sudo make --编译

sudo make install --安装

5、配置编译的交叉编译工具链

cd /home/s3c2410/crosstool/crosstool-build --进入编译目录 cp

/home/s3c2410/crosstool/crosstool-ng-1.17.0/samples/arm-unknown-linux-gnueabi/* ./

sudo cp crosstool.config .config --把crosstool-config --当作默认的配置文件

sudo /home/crosstool/crosstool-install/bin/ct-ng menuconfig --图形界面进行配置,若该句无法执行可能是终端窗口太小

弹出以下菜单,此菜单主要用于交叉编译工具链的环境配置。 Paths and misc options --->

(/home/crosstool/src-4.7.2) Local tarballs directory --目标源码目录

(/usr/local/arm/4.7.2) Prefix directory --最后生成的交叉编译工具链存放的目录

(2) Number of parallel jobs --主机是双核处理器的可以选2 另一说双核写4,我写的4 Target options --->

(armv4t) Architecture level

(arm9tdmi) Emit assembly for CPU (arm920t) Tune for CPU (vfp) Use specific FPU Toolchain options --->

(unknown) Tuple's vendor string

这里可以设置个性化,不填就是unknow,可以设置自己的个性名 如填“doc”,

这样产生的编译器前缀就是:arm-doc-linux-gnueabi- Operating System --->

Linux kernel version (3.6.3) --->

linux-3.6.11.tar.xz/ linux-3.6.3.tar.xz/linux-3.7.2.tar.bz2

下面这些与目标源码有关: Binary utilities --->

binutils version (2.21.1a) ---> binutils-2.21.1a.tar.bz2/binutils-2.21.1.tar.bz2/

binutils-2.22.tar.bz2/ binutils-2.23.1.tar.bz2

C compiler --->

gcc version (4.7.2) --->

gcc-4.7.2.tar.bz2/ gcc-4.5.2.tar.bz2

[ ] Fortran [ ] Java

无法直接修改的,可以在最后手动从 .config 中加“#”屏蔽

C-library --->

glibc version (2.14.1) --->

glibc-2.15.tar.bz2/glibc-2.14.1.tar.bz2/ glibc-linuxthreads-2.1.2.tar.gz

glibc-2.1.2.tar.gz/ glibc -2.16.0.tar.xz glibc-ports-2.16.0.tar.gz/ glibc-ports-2.14.1.tar.xz [*] Force unwind support (READ HELP!) Debug facilities ---> [ ] gdb --->

Companion libraries ---> GMP version (5.0.2) --->

gmp-5.0.2.tar.bz2/ gmp-5.1.1.tar.bz2 MPFR version (3.1.0) --->

mpfr-3.1.0.tar.xz/ mpfr-3.1.2.tar.xz/ mpfr-3.1.2.tar.bz2 PPL version (0.11.2) --->

ppl-0.11.2.tar.bz2/ ppl-1.0.tar.bz2/ ppl-1.0.tar.xz

CLooG/ppl version (0.15.11) --->

cloog-ppl-0.15.11.tar.gz MPC version(0.9)--->

mpc-0.9.tar.gz/ mpc-1.0.1.tar.gz/ mpc-2.4.1.tar.gz

libelf version (0.8.13) --->

libelf-0.8.13.tar.gz 保存退出。 vi .config

前面无法在设置窗口中设置java和fortran的,用“#”将所有带JAVA和FORTRAN的屏蔽 在

CT_MPFR=y 后面增加一行 CT_MPC=y 在

CT_MPFR_VERSION=\后面增加两行

CT_MPC_V_0_8_13=y

CT_MPC_VERSION=\保存退出。

注:若编译失败再次用菜单图形化设置后,注意查看.config之前修改的内容是否还原了,最好在查看一次。 6、编译交叉工具链

编译的时候会自动下载下面的软件包,也可以自己先下载好放在

src-4.5.1目录下,这样编译的是时候就比较快了。 linux-3.6.11.tar.xz/ linux-3.6.3.tar.xz/linux-3.7.2.tar.bz2 binutils-2.21.1a.tar.bz2/ binutils-2.21.1.tar.bz2/

binutils-2.22.tar.bz2/ binutils-2.23.1.tar.bz2

glibc-2.15.tar.bz2/glibc-2.14.1.tar.bz2/ glibc-linuxthreads-2.1.2.tar.gz

glibc-2.1.2.tar.gz/ glibc -2.16.0.tar.xz

glibc-ports-2.16.0.tar.gz/ glibc-ports-2.14.1.tar.xz

libelf-0.8.13.tar.gz gcc-4.7.2.tar.bz2

mpfr-3.1.0.tar.xz/ mpfr-3.1.2.tar.xz/ mpfr-3.1.2.tar.bz2 gmp-5.0.2.tar.bz2/ gmp-5.1.1.tar.bz2

mpc-0.9.tar.gz/ mpc-1.0.1.tar.gz/ mpc-2.4.1.tar.gz ppl-0.11.2.tar.bz2/ ppl-1.0.tar.bz2/ ppl-1.0.tar.xz cloog-ppl-0.15.11.tar.gz

//没能自动下载成功的,解决方法:自己网上搜索下载后放到/home/s3c2410/crosstool/src-4.5.1下即可。 duma_2_5_15.tar.gz/ duma_2_5_15.zip strace-4.7.tar.bz2 expat-2.1.0.tar.gz

ltrace_0.5.3.orig.tar.gz/ ltrace_0.3.10. tar.gz ncurses-5.8.tar.gz/ ncurses-5.9.tar.gz dmalloc-5.5.2.tgz/ dmalloc-5.4.2.tgz 在终端执行

sudo /home/s3c2410/crosstool/crosstool-install/bin/ct-ng build --开始编译

expat文件的问题,由于事先已经下载的相关文件存放在资源目录中,所以,应该是下载文件问题。因此,将资源目录下的该文件删除,让安装软件自己去下载。

root@ubuntu:/home/sdust/crosstool/crosstool-build#

root@ubuntu:/home/sdust/crosstool/crosstool-build# rm ../src5/exp* root@ubuntu:/home/sdust/crosstool/crosstool-build# ls ../src5/e*

[ERROR] configure: error: expat is missing or unusable

[ERROR] make[2]: *** [configure-gdb] Error 1 [ALL ] make[2]: Leaving

`/home/andy/crosstool-ng/build13/.build/mipsel-ls2f-linux-gnu/build/build-gdb-cross' [ERROR] make[1]: *** [all] Error 2 [ALL ] make[1]: Leaving

directory

directory

`/home/andy/crosstool-ng/build13/.build/mipsel-ls2f-linux-gnu/build/build-gdb-cross' [ERROR] [ERROR] >>

[ERROR] >> Error happened in: main[scripts/crosstool-NG.sh] [ERROR] >>

[ERROR] >> For more info on this error, look at the file: 'build.log'

[ERROR] >> There is a list of known issues, some with workarounds, in:

[ERROR] >> '/home/andy/crosstool-ng/install/share/doc/ct-ng-1.13.0/B - Known issues.txt' [ERROR]

[ERROR] Build failed in step 'Extracting and patching toolchain components'

一开始以为是没有装expat,sudo apt-get install expat后发现该软件已经装好,到/usr/lib目录下并没有发现libexpat.so文件,到网上查了下也没有相关的信息。因为之前在编译 android文件系统的机器上用crosstool-ng编译成功过一个交叉编译链,所以觉得应该是没有安装相关包,所以在本机器上直接将编译 android文件系统需要的相关包安装上(详见没博客上得编译android文件系统有关文章),并sudo apt-get install libexpat-dev后再次编译,最后成功编译出需要的工具链。

编译了两个小时左右,不过很庆幸的是没出现错误(其实我试了很多次了)。接下看下成果。

sudo cd usr/local/arm/4.7.2/bin/

sudo ./arm-unknown-linux-gnueabi-gcc -v 打印如下信息: Using built-in specs.

COLLECT_GCC=./arm-unknown-linux-gnueabi-gcc

COLLECT_LTO_WRAPPER=/usr/local/arm/4.7.2/libexec/gcc/arm-unknown-linux-gnueabi/4.5.1/lto-wrapper Target: arm-unknown-linux-gnueabi Configured with: /home/s3c2410/crosstool/crosstool-build/.build/src/gcc-4.5.1/configure --build=i686-build_pc-linux-gnu --

host=i686-build_pc-linux-gnu --target=arm-unknown-linux-gnueabi --prefix=/usr/local/arm/4.5.1 --with-

sysroot=/usr/local/arm/4.5.1/arm-unknown-linux-gnueabi/sysroot

--enable-languages=c,c++ --disable-multilib --with-arch=armv6 --with-

cpu=arm1176jzf-s --with-tune=arm1176jzf-s --with-fpu=vfp --with-float=soft --with-pkgversion='crosstool-NG 1.13.2' --disable-sjlj


交叉编译工具链的安装配置.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《电机与拖动基础》习题详细解答

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: