Crosstool-NG构建arm交叉编译工具链

Crosstool-NG构建arm交叉编译工具链

前言全局说明

嵌入式移植,交叉编译工具链是必不可少的

Crosstool-NG是一个用于构建交叉编译工具链的工具,它简化了从源代码构建gcc、glibc、binutils等工具的过程.


一、说明

1.1 环境:

Ubuntu 22.04 LTS (Linux VirtualBox 6.8.0-87-generic #88~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Oct 14 14:03:14 UTC 2 x86_64 x86_64 x86_64 GNU/Linux)

二、安装依赖

sudo apt-get update
sudo apt-get install -y git gperf bison flex texinfo help2man gawk libtool-bin libncurses5-dev unzip 

三、获取Crosstool-NG

3.1

git clone https://github.com/crosstool-ng/crosstool-ng

3.2 选择特定版本

默认 master

cd crosstool-ng
git checkout master 

四、编译安装Crosstool-NG

4.1

./bootstrap

4.2

./configure --prefix=/opt/crosstool-ng

4.3

make

4.4

sudo make install

4.5 将Crosstool-NG添加到PATH:

export PATH="/opt/crosstool-ng/bin:$PATH"

五、设置

5.1

mkdir ~/arm-toolchain

5.12

cd ~/arm-toolchain

arm-toolchain 会占用大量空间,选择一个空间大的路径,在 .confi 里修改,或用 ct-ng menuconfig 修改

5.3 选择ARM架构预设

ct-ng arm-unknown-linux-gnueabi 

六、构建工具链

6.1 构建

ct-ng build

构建过程可能需要较长时间(30分钟到几小时,取决于系统配置)。

构建完成后,工具链将安装在~/x-tools/arm-unknown-linux-gnueabi目录下(或你指定的目录)。


七、扩展

7.1 离线构建

提前下载所有源码包:

ct-ng source

image

7.2 自定义配置(可选)

ct-ng menuconfig

常见配置选项:
Paths and misc options:设置安装路径(默认为~/x-tools)
Target options:调整目标架构(如ARMv7、ARMv8等)
Toolchain options:选择C库(glibc、musl等)
Operating System:选择Linux内核版本
Binary utilities:binutils版本
C compiler:gcc版本和配置



免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。




参考、来源:
https://www.wenxiaobai.com/6cd2e86a-b238-4f5e-984d-efb9a779150b