使用Rust交叉编译嵌入式Linux应用程序

 时间:2025-10-08 23:41:24

1、首先查看当前Rust开发环境支持的目标平台有哪些:

rustup target list

使用Rust交叉编译嵌入式Linux应用程序

2、这里选择的目标平台是全志V3s处理器,其内核为Cortex-A7,指令集属于armv7,对应Rust下的平台是armv7-unknown-linux-gnueabihf

使用rustup工具安装该平台的支持:

rustup target add armv7-unknown-linux-gnueabihf

使用Rust交叉编译嵌入式Linux应用程序

3、另外本地还需要有交叉编译工具链(Rust需要使用里面的链接器),这里选择的是gcc-linaro-6.4.1-2017.11-x86_64_arm-linux-gnueabihf

在~/.cargo/config文件中指定该工具链的具体位置,具体需要添加如下配置

[target.armv7-unknown-linux-gnueabihf]linker = "arm-linux-gnueabihf-gcc"

使用Rust交叉编译嵌入式Linux应用程序

4、使用cargo创建hello_world项目:cargo new hello_world --bin

在本地编译运行:cargo run

使用Rust交叉编译嵌入式Linux应用程序

5、交叉编译该工程:cargo build --target=armv7-unknown-linux-gnueabihf

查看交叉编译生成的可执行文件hello_world的信息:file hello_world

可以看到是ARM版本的ELF二进制

使用Rust交叉编译嵌入式Linux应用程序

使用Rust交叉编译嵌入式Linux应用程序

6、把该程序直接拷贝到LicheePi Zero上,观察是否能够正常运行,可以看到最后成功输出了hello world字样

使用Rust交叉编译嵌入式Linux应用程序

  • Mathematica 下的并行计算
  • 洛克王国攻略之如何捕捉骁勇骑士?
  • C#如何封装一个方法
  • 小程序 view如何宽度自适应
  • 用python绘制显函数的图像的方法
  • 热门搜索
    腰肌劳损贴什么膏药 重阳节是什么节 什么是模拟信号 运动粘度单位 cos2x等于什么 感光度是什么意思 awful是什么意思 勇敢是什么 angela什么意思 百年树人是什么意思