linux:自己制作编译工具链crosstool-0.43
2017-05-05 13:34
162 查看
使用VM虚拟机下操作系统ubuntu,通过crosstool-0.43创建交叉编译环境。
1、首先下载bison flex build-essential这些软件:
$:' sudo apt-get install bison
$:' sudo apt-get install flex
$:' sudo apt-get install build-essential
2、接着在windows系统下,下载如下软件:
【crosstool-0.43.tar.gz】
位置:http://kegel.com/crosstool/
下载:http://kegel.com/crosstool/crosstool-0.43.tar.gz
【binutils-2.16.1.tar.bz2】
位置:http://ftp.gnu.org/gnu/binutils/
下载:http://ftp.gnu.org/gnu/binutils/binutils-2.16.1.tar.bz2
【glibc-2.3.2.tar.bz2】
位置:http://ftp.gnu.org/gnu/glibc/
下载:http://ftp.gnu.org/gnu/glibc/glibc-2.3.2.tar.bz2
【glibc-linuxthreads-2.3.2.tar.bz2】
位置:http://ftp.gnu.org/gnu/glibc/
下载:http://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.3.2.tar.bz2
【Linux-2.6.26.tar.bz2】内核版本根据情况而定,因随时间而更新
位置:https://www.kernel.org/pub/
下载:https://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.tar.bz2
【gdb-6.5.tar.bz2】
位置:http://ftp.gnu.org/gnu/gdb/
下载:http://ftp.gnu.org/gnu/gdb/gdb-6.5a.tar.bz2
【gcc-4.1.0.tar.bz2】
位置:http://ftp.gnu.org/gnu/gcc/gcc-4.1.1/
下载:http://ftp.gnu.org/gnu/gcc/gcc-4.1.1/gcc-4.1.1.tar.bz2
【gcc-3.3.6.tar.bz2】
位置:http://ftp.gnu.org/gnu/gcc/gcc-3.3.6/
下载:http://ftp.gnu.org/gnu/gcc/gcc-3.3.6/gcc-3.3.6.tar.bz2
3、修改一个dash选项:
$:' sudo dpkg-reconfigure dash
选择 no 以删除 dash,网上说不修改,编译会出现错误。
4、解压crosstool-0.43并修改demo-arm.sh脚本文件:
$:' tar -xvf crosstool-0.43.tar.gz
$:' cd crosstool-0.43
$:' vi demo-arm.sh
5、修改gcc-4.1.1-glibc-2.3.2.dat就是刚才留下没有注释掉的那项:
6、修改arm.dat:
7、开始编译:
$:' ./demo-arm.sh
这时系统开始编译,这个过程比较长,如果你没有下载上面的那些软件或者那些软件放置的文件夹不对,都需要重新下载,时间很长。如果都下好且放置目录没问题(/home/xxx/download/),虚拟机整个编译过程大概1个多小时。。。。
8、修改PATH环境变量:
如果没有报错,这时需要修改路径了。
$:' sudo vi ~/.bashrc
在最后添加:
使得路径生效。
9、重启终端,测试:
$:' arm-linux-gcc [-v]
arm-linux-gcc: no input files
正常的话就会出现no input files说明程序能用了。
PS: 可能会遇到的问题
编译过后,发现没有成功,找到gcc-4.1.1-glibc-2.3.2下的bin目录下,发现没有生成arm-linux-gcc等文件。最后找到了原因,因为我的gcc版本不对,是gcc-4.4,而这里需要gcc-4.1,解决方法:
$:' sudo apt-get install gcc-4.1
$:' cd /usr/bin
$:' sudo rm gcc
$:' ln -s gcc-4.1 gcc
这样就可以了。(目前2017.05.05虚拟机中32位ubuntu系统版本是12.04LTS-32位)
1、首先下载bison flex build-essential这些软件:
$:' sudo apt-get install bison
$:' sudo apt-get install flex
$:' sudo apt-get install build-essential
2、接着在windows系统下,下载如下软件:
【crosstool-0.43.tar.gz】
位置:http://kegel.com/crosstool/
下载:http://kegel.com/crosstool/crosstool-0.43.tar.gz
【binutils-2.16.1.tar.bz2】
位置:http://ftp.gnu.org/gnu/binutils/
下载:http://ftp.gnu.org/gnu/binutils/binutils-2.16.1.tar.bz2
【glibc-2.3.2.tar.bz2】
位置:http://ftp.gnu.org/gnu/glibc/
下载:http://ftp.gnu.org/gnu/glibc/glibc-2.3.2.tar.bz2
【glibc-linuxthreads-2.3.2.tar.bz2】
位置:http://ftp.gnu.org/gnu/glibc/
下载:http://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.3.2.tar.bz2
【Linux-2.6.26.tar.bz2】内核版本根据情况而定,因随时间而更新
位置:https://www.kernel.org/pub/
下载:https://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.tar.bz2
【gdb-6.5.tar.bz2】
位置:http://ftp.gnu.org/gnu/gdb/
下载:http://ftp.gnu.org/gnu/gdb/gdb-6.5a.tar.bz2
【gcc-4.1.0.tar.bz2】
位置:http://ftp.gnu.org/gnu/gcc/gcc-4.1.1/
下载:http://ftp.gnu.org/gnu/gcc/gcc-4.1.1/gcc-4.1.1.tar.bz2
【gcc-3.3.6.tar.bz2】
位置:http://ftp.gnu.org/gnu/gcc/gcc-3.3.6/
下载:http://ftp.gnu.org/gnu/gcc/gcc-3.3.6/gcc-3.3.6.tar.bz2
3、修改一个dash选项:
$:' sudo dpkg-reconfigure dash
选择 no 以删除 dash,网上说不修改,编译会出现错误。
4、解压crosstool-0.43并修改demo-arm.sh脚本文件:
$:' tar -xvf crosstool-0.43.tar.gz
$:' cd crosstool-0.43
$:' vi 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/xxxx/download #这里是你下载软件的目录,一会就将windows下载的那一堆软件放在这里 RESULT_TOP=/home/xxxx/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 arm.dat gcc-2.95.3-glibc-2.1.3.dat` sh all.sh --notest #eval `cat arm.dat gcc-2.95.3-glibc-2.2.2.dat` sh all.sh --notest …… …… #eval `cat arm.dat gcc-4.1.0-glibc-2.3.2-tls.dat` sh all.sh --notest eval `cat arm.dat gcc-4.1.1-glibc-2.3.2.dat` sh all.sh --notest #注意这里只留下这一项不被注释掉,若你多留几项那些都要编译的 echo Done.
5、修改gcc-4.1.1-glibc-2.3.2.dat就是刚才留下没有注释掉的那项:
BINUTILS_DIR=binutils-2.16.1 GCC_CORE_DIR=gcc-3.3.6 GCC_DIR=gcc-4.1.1 GLIBC_DIR=glibc-2.3.2 LINUX_DIR=linux-2.6.26 #这项根据你下载的内核版本更改 LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2 GDB_DIR=gdb-6.5这里记录了你需要的一切软件。
6、修改arm.dat:
KERNELCONFIG=`pwd`/arm.config TARGET=arm-linux #该名称为目标名称,我是觉得默认arm-unknow-linux-gnu的太长所以修改了,修改了后要注意了相关目录的权限 TARGET_CFLAGS="-O"所有的设置都做完了。
7、开始编译:
$:' ./demo-arm.sh
这时系统开始编译,这个过程比较长,如果你没有下载上面的那些软件或者那些软件放置的文件夹不对,都需要重新下载,时间很长。如果都下好且放置目录没问题(/home/xxx/download/),虚拟机整个编译过程大概1个多小时。。。。
8、修改PATH环境变量:
如果没有报错,这时需要修改路径了。
$:' sudo vi ~/.bashrc
在最后添加:
if [ -d /home/.../crosstool/gcc-4.1.1-glibc-2.3.2/arm-linux ]; then #此处为你的文件生成的目录,根据自己编译到得目录自行修改 PATH=/home/.../crosstool/gcc-4.1.1-glibc-2.3.2/arm-linux/bin:$PATH fi$:' source ~/.bashrc
使得路径生效。
9、重启终端,测试:
$:' arm-linux-gcc [-v]
arm-linux-gcc: no input files
正常的话就会出现no input files说明程序能用了。
PS: 可能会遇到的问题
编译过后,发现没有成功,找到gcc-4.1.1-glibc-2.3.2下的bin目录下,发现没有生成arm-linux-gcc等文件。最后找到了原因,因为我的gcc版本不对,是gcc-4.4,而这里需要gcc-4.1,解决方法:
$:' sudo apt-get install gcc-4.1
$:' cd /usr/bin
$:' sudo rm gcc
$:' ln -s gcc-4.1 gcc
这样就可以了。(目前2017.05.05虚拟机中32位ubuntu系统版本是12.04LTS-32位)
相关文章推荐
- 在linux下使用crosstool-0.43制作自己的arm交叉编译环境 (转)
- crosstool制作arm-linux交叉编译工具链
- 在linux下使用crosstool制作自己的arm交叉编译环境
- 在LINUX下使用CROSSTOOL-0.43制作自己的ARM交叉编译环境
- arm linux uclibc交叉编译工具链的制作
- ARM Linux 交叉编译工具链 制作攻略
- CentOS 操作系统中制作arm-linux-gcc编译工具链
- 使用Crosstool 0.43 在ubuntu上制作arm交叉编译器arm-linux-gcc
- Linux:crosstool-ng制作自己的交叉编译工具
- arm linux uclibc交叉编译工具链的制作
- 2.使用crosstool制作ARM-Linux交叉编译工具链
- 自己制作arm-linux交叉编译环境(一)-scratch篇
- 使用Crosstool 0.43 在ubuntu0.94上制作arm交叉编译器arm-linux-gcc .
- 用Crosstool-0.43制作交叉交叉工具链的一些心得!(下)
- arm-gcc-linux工具编译工具链的制作
- crosstool0.43(gcc-4.1.0-glibc-2.3.2)+linux2.6.18.8+yaffs2编译成功
- 自己制作arm-linux交叉编译环境(二)-crosstool篇
- ARM Linux 交叉编译 工具链 制作攻略
- [Linux]:crosstool制作arm-linux交叉编译工具链
- 全手工制作arm-linux交叉编译工具链《一》-转