鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

交叉编译工具链安装指导

  1. 进入arm-gnu-toolchain-downloads,根据操作系统的架构,选择相应的软件包版本。
    • 对于x86环境,建议安装arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf.tar.xz
    • 对于arm环境,建议安装arm-gnu-toolchain-14.2.rel1-aarch64-aarch64-none-elf.tar.xz。

    不同操作系统的安装步骤一致,本节以x86环境的软件包为例进行说明。x86环境下载工具链包并解压至本地环境。

    tar -xvf arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf.tar.xz
  2. 执行以下命令,将解压后目录中的bin文件夹内的文件软链接至usr/bin目录下。
    ln -sf {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/* /usr/bin/

    例如:

    ln -sf /root/arm-gnu-toolchain/bin/* /usr/bin/
  3. 输入下面命令,查看是否软链接成功。
    ll /usr/bin |grep aarch64-none-elf

    打印信息如下所示,即安装成功。

    lrwxrwxrwx  1 root root          88 May 29 10:48 aarch64-none-elf-addr2line -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-addr2line
    lrwxrwxrwx  1 root root          81 May 29 10:48 aarch64-none-elf-ar -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-ar
    lrwxrwxrwx  1 root root          81 May 29 10:48 aarch64-none-elf-as -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-as
    lrwxrwxrwx  1 root root          82 May 29 10:48 aarch64-none-elf-c++ -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-c++
    lrwxrwxrwx  1 root root          86 May 29 10:48 aarch64-none-elf-c++filt -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-c++filt
    lrwxrwxrwx  1 root root          82 May 29 10:48 aarch64-none-elf-cpp -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-cpp
    lrwxrwxrwx  1 root root          86 May 29 10:48 aarch64-none-elf-elfedit -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-elfedit
    lrwxrwxrwx  1 root root          82 May 29 10:48 aarch64-none-elf-g++ -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-g++
    lrwxrwxrwx  1 root root          82 May 29 10:48 aarch64-none-elf-gcc -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-gcc
    lrwxrwxrwx  1 root root          89 May 29 10:48 aarch64-none-elf-gcc-13.2.1 -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-gcc-13.2.1
    lrwxrwxrwx  1 root root          85 May 29 10:48 aarch64-none-elf-gcc-ar -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-gcc-ar
    lrwxrwxrwx  1 root root          85 May 29 10:48 aarch64-none-elf-gcc-nm -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-gcc-nm
    lrwxrwxrwx  1 root root          89 May 29 10:48 aarch64-none-elf-gcc-ranlib -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-gcc-ranlib
    lrwxrwxrwx  1 root root          83 May 29 10:48 aarch64-none-elf-gcov -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-gcov
    lrwxrwxrwx  1 root root          88 May 29 10:48 aarch64-none-elf-gcov-dump -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-gcov-dump
    lrwxrwxrwx  1 root root          88 May 29 10:48 aarch64-none-elf-gcov-tool -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-gcov-tool
    lrwxrwxrwx  1 root root          82 May 29 10:48 aarch64-none-elf-gdb -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-gdb
    lrwxrwxrwx  1 root root          92 May 29 10:48 aarch64-none-elf-gdb-add-index -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-gdb-add-index
    lrwxrwxrwx  1 root root          87 May 29 10:48 aarch64-none-elf-gfortran -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-gfortran
    lrwxrwxrwx  1 root root          84 May 29 10:48 aarch64-none-elf-gprof -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-gprof
    lrwxrwxrwx  1 root root          81 May 29 10:48 aarch64-none-elf-ld -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-ld
    lrwxrwxrwx  1 root root          85 May 29 10:48 aarch64-none-elf-ld.bfd -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-ld.bfd
    lrwxrwxrwx  1 root root          87 May 29 10:48 aarch64-none-elf-lto-dump -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-lto-dump
    lrwxrwxrwx  1 root root          81 May 29 10:48 aarch64-none-elf-nm -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-nm
    lrwxrwxrwx  1 root root          86 May 29 10:48 aarch64-none-elf-objcopy -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-objcopy
    lrwxrwxrwx  1 root root          86 May 29 10:48 aarch64-none-elf-objdump -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-objdump
    lrwxrwxrwx  1 root root          85 May 29 10:48 aarch64-none-elf-ranlib -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-ranlib
    lrwxrwxrwx  1 root root          86 May 29 10:48 aarch64-none-elf-readelf -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-readelf
    lrwxrwxrwx  1 root root          83 May 29 10:48 aarch64-none-elf-size -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-size
    lrwxrwxrwx  1 root root          86 May 29 10:48 aarch64-none-elf-strings -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-strings
    lrwxrwxrwx  1 root root          84 May 29 10:48 aarch64-none-elf-strip -> {本地下载的包路径}/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf-strip
  4. 执行如下命令,查询交叉编译工具链版本。
    aarch64-none-elf-gcc -v

    打印信息如下所示,表示安装成功。

    Using built-in specs.
    COLLECT_GCC=aarch64-none-elf-gcc
    COLLECT_LTO_WRAPPER=/home/CIDA/flexdacc/packages/arm-gnu-toolchain-14.2.rel1-aarch64-aarch64-none-elf/bin/../libexec/gcc/aarch64-none-elf/14.2.1/lto-wrapper
    Target: aarch64-none-elf
    Configured with: /data/jenkins/workspace/GNU-toolchain/arm-14/src/gcc/configure --target=aarch64-none-elf --prefix=/data/jenkins/workspace/GNU-toolchain/arm-14/build-aarch64-none-elf/install --with-gmp=/data/jenkins/workspace/GNU-toolchain/arm-14/build-aarch64-none-elf/host-tools --with-mpfr=/data/jenkins/workspace/GNU-toolchain/arm-14/build-aarch64-none-elf/host-tools --with-mpc=/data/jenkins/workspace/GNU-toolchain/arm-14/build-aarch64-none-elf/host-tools --with-isl=/data/jenkins/workspace/GNU-toolchain/arm-14/build-aarch64-none-elf/host-tools --disable-shared --disable-nls --disable-threads --disable-tls --enable-checking=release --enable-languages=c,c++,fortran --with-newlib --with-gnu-as --with-headers=yes --with-gnu-ld --with-native-system-header-dir=/include --with-sysroot=/data/jenkins/workspace/GNU-toolchain/arm-14/build-aarch64-none-elf/install/aarch64-none-elf --with-bugurl=https://bugs.linaro.org/ --with-pkgversion='Arm GNU Toolchain 14.2.Rel1 (Build arm-14.52)'
    Thread model: single
    Supported LTO compression algorithms: zlib
    gcc version 14.2.1 20241119 (Arm GNU Toolchain 14.2.Rel1 (Build arm-14.52))