zoukankan      html  css  js  c++  java
  • Rust程序交叉编译到aarch64(armv8)目标

    https://kkua.github.io/post/cross-compile-rust-to-aarch64/

    不同ARM交叉编译工具链区别

    “arm生态发展与交叉编译工具链选择”一文对ARM交叉编译工具链介绍得比较详细,以下引用该文章“交叉编译链选择”部分内容,更多详细介绍请查看原文

    免费版目前有三大主流工具商提供,第一是GNU(提供源码,自行编译制作),第二是****Codesourcery,第三是Linora。

    收费版有ARM原厂提供的armcc、IAR提供的编译器等等,因为这些价格都比较昂贵,不适合学习用户使用,所以不做讲述。

    arm-none-linux-gnueabi-gcc:是 Codesourcery 公司(目前已经被Mentor收购)基于GCC推出的的ARM交叉编译工具。可用于交叉编译ARM(32位)系统中所有环节的代码,包括裸机程序、u-boot、Linux kernel、filesystem和App应用程序。

    arm-linux-gnueabihf-gcc:是由 Linaro 公司基于GCC推出的的ARM交叉编译工具。可用于交叉编译ARM(32位)系统中所有环节的代码,包括裸机程序、u-boot、Linux kernel、filesystem和App应用程序。

    aarch64-linux-gnu-gcc:是由 Linaro 公司基于GCC推出的的ARM交叉编译工具。可用于交叉编译ARMv8 64位目标中的裸机程序、u-boot、Linux kernel、filesystem和App应用程序。

    arm-none-elf-gcc:是 Codesourcery 公司(目前已经被Mentor收购)基于GCC推出的的ARM交叉编译工具。可用于交叉编译ARM MCU(32位)芯片,如ARM7、ARM9、Cortex-M/R芯片程序。

    arm-none-eabi-gcc:是 GNU 推出的的ARM交叉编译工具。可用于交叉编译ARM MCU(32位)芯片,如ARM7、ARM9、Cortex-M/R芯片程序。

    安装交叉编译工具链

    1. 访问Linaro官网下载最新的适合我们机器的交叉工具链版本,由于我使用的是Windows所以选择下载mingw32版本

    2. 解压交叉编译工具链到合适的位置

    3. 设置环境变量。把工具链bin目录的路径加入path环境变量

    配置Rust环境

    1. 运行命令rustup target add aarch64-unknown-linux-gnu,添加aarch64-unknown-linux-gnu rust toolchain到系统
    2. 修改cargo的config文件,配置新的目标架构
    1
    2
    
    [target.aarch64-unknown-linux-gnu]
    linker = "aarch64-linux-gnu-gcc"
    
    1. 最后cargo build时需要添加参数--target aarch64-unknown-linux-gnu 。若是想要省略该参数则需要对config作如下的修改,以改变默认的构建目标
    1
    2
    
    [build]
    target = "aarch64-unknown-linux-gnu"
    
    1. 另外,也可以给build --target aarch64-unknown-linux-gnu 命令设置别名从而缩短构建命令。比如按下面的方式修改config文件后,就可以使用cargo build_aarch64来构建程序了
    1
    2
    
    [alias]
    build_aarch64 = "build --target aarch64-unknown-linux-gnu"
    

    至此,我们就得到了适用于aarch64-unknown-linux环境的二进制可执行目标文件

  • 相关阅读:
    【机器学习】scikit-learn中的特征选择小结
    【机器学习】scikit-learn中的数据预处理小结(归一化、缺失值填充、离散特征编码、连续值分箱)
    【机器学习】随机森林原理与调参小结
    用find命令巧查目录下文件的个数
    git
    数据库删除主键
    Linux安装JDK
    计算机进制
    java虚拟机故障处理工具
    线程的六种状态
  • 原文地址:https://www.cnblogs.com/dhcn/p/12123205.html
Copyright © 2011-2022 走看看