制作 Linux 交叉编译工具链
基于版本:
crosstool-ng-1.27.0编译环境:Kylin V10 SP2 GCC 7.3.0
编译工具
sudo yum install bison flex glibc-static gperf help2man libstdc++-static libtool texinfo
tar -Jxf crosstool-ng-1.27.0.tar.xz
cd crosstool-ng-1.27.0/
./bootstrap
./configure --enable-local
make -j4
配置工具
# 开始配置
./ct-ng menuconfig
# 关键配置
Paths and misc options ->
Local tarballs directory (本地包目录, 默认在 ${HOME}/src, 必须存在才有效)
Prefix directory (生成目录前缀, 默认在 ${HOME}/x-tools/${CT_TARGET})
Target options ->
Target Architecture (目标架构)
Endianness (大/小端)
Bitness (32/64 位)
Toolchain options ->
Tuple's vendor string (厂商名称)
Operating System ->
Target OS (目标系统)
Version of linux (linux 版本, uname -a 查看)
Binary utilities ->
Version of binutils (binutils 版本, ld --version 查看)
C-library ->
C library (C 库)
Version of glibc (glibc 版本, ldd --version 查看)
C compiler ->
Compiler (编译器)
Version of gcc (gcc 版本, gcc --version 查看)
Compile libsanitizer (asan 支持)
C++ (开启 C++ 支持)
开始构建
# 清空 ./.build/
./ct-ng build.clean
# 开始构建, 会下载源码包, 可能要挂梯子
# 有些包下载失败, 可以手动放到 ./.build/tarballs/ 里
./ct-ng build
其他
构建 GCC 4.8.5 的交叉编译工具链
可用版本是 crosstool-ng-1.22.0,编译环境是 CentOS 7 GCC Red Hat 4.8.5-44。