crosstool-ng-1.23.0交叉编译链制作
一.准备crosstool-ng-1.23.0
1. crosstool-ng的下载地址是http://ymorin.is-a-geek.org/download/crosstool-ng/
下载交叉编译链源文件crosstool-ng-1.23.0
2. 编译安装
./configure –prefix=/home/crosstool-ng-dir
./make
./make install
二.支持的编译链
./ct-ng list-samples
Status Sample name
[G..] aarch64-rpi3-linux-gnueabi
[G..] aarch64-unknown-linux-gnueabi
[G..] aarch64-unknown-linux-uclibcgnueabi
[G..] alphaev56-unknown-linux-gnu
[G..] alphaev67-unknown-linux-gnu
[G..] arm-bare_newlib_cortex_m3_nommu-eabi
[G..] arm-cortex_a15-linux-gnueabihf
[G.X] arm-cortexa5-linux-uclibcgnueabihf
[G..] arm-cortex_a8-linux-gnueabi
[G.X] arm-cortexa9_neon-linux-gnueabihf
[G.X] x86_64-w64-mingw32,arm-cortexa9_neon-linux-gnueabihf
[G..] armeb-unknown-eabi
[G..] armeb-unknown-linux-gnueabi
[G..] armeb-unknown-linux-uclibcgnueabi
[G..] arm-multilib-linux-uclibcgnueabi
[G..] arm-nano-eabi
[G..] arm-unknown-eabi
[G..] arm-unknown-linux-gnueabi
[G.X] arm-unknown-linux-musleabi
[G..] arm-unknown-linux-uclibcgnueabi
[G.X] arm-unknown-linux-uclibcgnueabihf
[G..] armv6-nommu-linux-uclibcgnueabi
[G..] armv6-rpi-linux-gnueabi
[G..] armv7-rpi2-linux-gnueabihf
[G..] armv8-rpi3-linux-gnueabihf
[G..] avr
[G..] i586-geode-linux-uclibc
[G..] i686-centos6-linux-gnu
[G..] i686-centos7-linux-gnu
[G..] i686-nptl-linux-gnu
[G..] i686-ubuntu12.04-linux-gnu
[G..] i686-ubuntu14.04-linux-gnu
[G..] i686-ubuntu16.04-linux-gnu
[G.X] i686-w64-mingw32
[G..] m68k-unknown-elf
[G..] m68k-unknown-uclinux-uclibc
[G..] powerpc-unknown-linux-uclibc,m68k-unknown-uclinux-uclibc
[G..] mips64el-multilib-linux-uclibc
[G..] mips-ar2315-linux-gnu
[G..] mipsel-multilib-linux-gnu
[G..] mipsel-sde-elf
[G..] mipsel-unknown-linux-gnu
[G..] mips-malta-linux-gnu
[G..] mips-unknown-elf
[G..] mips-unknown-linux-uclibc
[G.X] i686-w64-mingw32,nios2-spico-elf
[G..] powerpc-405-linux-gnu
[G..] powerpc64le-unknown-linux-gnu
[G..] powerpc64-multilib-linux-gnu
[G..] powerpc64-unknown-linux-gnu
[G..] powerpc-860-linux-gnu
[G..] powerpc-e300c3-linux-gnu
[G..] powerpc-e500v2-linux-gnuspe
[G..] x86_64-multilib-linux-uclibc,powerpc-unknown-elf
[G..] powerpc-unknown-linux-gnu
[G..] powerpc-unknown-linux-uclibc
[G..] powerpc-unknown_nofpu-linux-gnu
[G.X] s390-ibm-linux-gnu
[G..] s390x-ibm-linux-gnu
[G..] sh4-multilib-linux-gnu
[G..] sh4-multilib-linux-uclibc
[G..] sh4-unknown-linux-gnu
[G..] sparc64-multilib-linux-gnu
[G..] sparc-leon-linux-uclibc
[G..] sparc-unknown-linux-gnu
[G..] x86_64-centos6-linux-gnu
[G..] x86_64-centos7-linux-gnu
[G..] x86_64-multilib-linux-gnu
[G.X] x86_64-multilib-linux-musl
[G..] x86_64-multilib-linux-uclibc
[G.X] x86_64-w64-mingw32,x86_64-pc-linux-gnu
[G..] x86_64-ubuntu12.04-linux-gnu
[G..] x86_64-ubuntu14.04-linux-gnu
[G..] x86_64-ubuntu16.04-linux-gnu
[G..] x86_64-unknown-linux-gnu
[G..] x86_64-unknown-linux-uclibc
[G.X] x86_64-w64-mingw32
[G..] xtensa-fsf-linux-uclibc
L(Local) : sample was found incurrent directory
G(Global) : sample was installed withcrosstool-NG
X(EXPERIMENTAL): sample may use EXPERIMENTAL features
B(BROKEN) : sample is currentlybroken
三.选择编译链
./ct-ng arm-unknown-linux-gnueabi
执行完后,会在当前目录下会生成一个隐藏文件.config
编译链需要的软件包
./ct-ng show-arm-unknown-linux-gnueabi
[G..] arm-unknown-linux-gnueabi
OS : linux-4.10.8
Companion libs : gmp-6.1.2 mpfr-3.1.5isl-0.16.1 mpc-1.0.3 libelf-0.8.13 expat-2.2.0 ncurses-6.0
binutils : binutils-2.28
Ccompilers : gcc | 6.3.0
Languages : C,C++
Clibrary : glibc-2.25 (threads: nptl)
Tools : duma-2_5_15 gdb-7.12.1ltrace-0.7.3 strace-4.16
四.配置并编译
./ct-ng menuconfig 配置
./ct-ng build 在编译的过程中中间文件会以隐藏文件的形式出现,目录为.build,编译命令是以非root用户的权限执行的。