一、下载交叉编译工具链crosstool-0.43.tar.gz
地址:
二、复制crosstool-0.43.tar.gz到/opt/目录下。
$tar zxf crosstool-0.43.tar.gz
$cd crosstool-0.43
$ls
查看到很多文件,其中有很多文件,如:arm.dat、demo-arm.sh、gcc-3.3.6-glibc-2.3.2-tls.dat等。
如果我们想交叉编译基于ARM平台运行的程序,则我们打开demo-arm.sh文件。
$vim demo-arm.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 (最终生成的交叉编译工具/bin/存放目录)
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 arm.dat gcc-3.3.6-glibc-2.2.5.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.3.6-glibc-2.3.2.dat` sh all.sh --notest
eval `cat arm.dat gcc-3.3.6-glibc-2.3.2-tls.dat` sh all.sh --notest
(去掉前面的#号,则变成待生成的交叉编译工具)
……
三、打开gcc-3.3.6-glibc-2.3.2-tls.dat文件
$vim gcc-3.3.6-glibc-2.3.2-tls.dat
会看到要求参与编译的文件包:binutils-2.15.tar,gcc-3.3.6.tar,glibc-2.3.2.tar,
glibc-linuxthreads-2.3.2.tar,linux-2.6.9.tar,linux-libc-headers-2.6.12.0.tar。
这些文件包的下载地址
将下载的这些文件一起放到arm.dat文件中要求的,TARBALLS_DIR=/home/downloads下面。
四、然后打开arm.dat文件。
$vim arm.dat
修改 TARGET=arm-s3c44b0-linux (改为适合你平台的名称即可)
五、以root身份编译
$sudo
password *****
#./demo-arm.sh
经过漫长的等待,最终编译结束。会在/opt/目录下生成一个crosstool的文件夹。这个就是交叉编译工具的存放目录。
六、测试一下
#export PATH=$PATH:/opt/crosstool/gcc-3.3.6-glibc-2.3.2/arm-s3c44b0-linux/bin
自己写一个测试程序test.c测试一下
#arm-s3c44b0-linux-gcc -o test test.c
#file test
会发现它是arm平台执行文件。那就OK了。
阅读(343) | 评论(2) | 转发(0) |