【问题标题】:Cross compilation for RISC-V with GCCRISC-V 与 GCC 的交叉编译
【发布时间】:2022-11-08 20:40:08
【问题描述】:

GCC 具有编译目标 RISC-V https://gcc.gnu.org/onlinedocs/gcc/RISC-V-Options.html 的能力,但是当我查看如何为 RISC-V 进行交叉编译时,我看到了很多关于如何在 RISC-v 支持下编译 GCC 然后将其用于交叉编译。

是否有任何文档显示如何仅使用 GCC 编译一个简单的应用程序(问好世界)并制作一个文件,以及如何将其扩展到更复杂的情况,例如为 RISC-V 编译 OpenCV?

【问题讨论】:

    标签: c++ gcc riscv


    【解决方案1】:

    如果需要了解交叉编译,可以查看10XEngineers提供的this文档。这包含您需要的信息,但它包含复杂程序(如 Python 和 openssl)的交叉编译,不包含简单的 Hello World 交叉编译。但我可以在这里指导你如何做到这一点。

    1. 使用指令here 安装 RISC-V GNU 工具链。这将是您的交叉编译器。这里有两种编译方法:newlib 用于裸机,linux 用于 linux 平台。
    2. 创建一个Hello World C 文件(比如helloworld.c)。
    3. 使用以下命令之一交叉编译您的helloworld.c
      riscv64-unknown-elf-gcc helloworld.c -o helloworld # If you have installed riscv toolchain for bare metal (using newlib)
      # OR  
      riscv64-unknown-linux-gnu-gcc helloworld.c -o helloworld # If you have installed riscv toolchain for linux platforms (using make linux)
      
      1. 现在可以在以下工具之一上执行编译后的二进制文件(helloworld):
        • spike #如果你使用过 riscv64-unknown-elf-gcc 进行编译
        • qemu-riscv64 # 如果你使用 riscv64-unknown-linux-gnu-gcc 编译你的 C 文件

    【讨论】:

      猜你喜欢
      • 2021-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-05
      • 2020-10-26
      • 2013-07-10
      • 2012-02-17
      相关资源
      最近更新 更多