深入理解交叉编译(Cross Compile)
首先你要了解一下,三个名词:"build, haost, target",和三元组。
build:构建 gcc 编译器的平台系统环境,编译该软件使用的平台。
host::是执行 gcc 编译器的平台系统环境,该软件运行的平台。
target:是让 gcc 编译器产生能在什么格式运行的平台的系统环境,该软件处理的目标平台。
三元组:架构-设备厂家-位
一. build、host、target的三种组合
build与host不同是交叉编译器;build与target不同是交叉编译链;三者都相同则为本地编译。
指定:- -build=X86, - -host=X86, - -target=X86
使用X86下构建X86的gcc编译器,编译出能在X86下运行的程序。
指定:- -build=X86, - -host=X86, - -target=MIPS
在X86下交叉编译出能在MIPS下运行的可执行程序。
指定:- -build=X86, - -host=MIPS, - -target=X86
在X86下构建 gcc交叉编译器,在MIPS上运行 gcc交叉编译器,编译出能在 ARM 上运行的可执行程序。
指定:- -build=X86, - -host=ARM, - -target=MIPS
在X86下构建 gcc交叉编译器,在ARM上运行 gcc交叉编译器,编译出能在 MIPS 运行的可执行程序。
二. 构建 MIPS 交叉编译链
指定ABI变量
ABI
CLF_ABI = Value
Notes
O32
32
32 位CPU
N32
N32
对于在 32 位模式下运行 64 位的CPU
N64
64
对于在 64 位模式下运行 64 位的CPU
export CLFS_ABI="[From Chart]"
echo export CLFS_ABI=\