linux交叉编译aix_macOS交叉编译rust代码到树莓派

笔者一直想搞个树莓派来玩,由于囊中羞涩一直没舍得买,加上自己一直是做 Java 开发,树莓派的发挥也不大,就一直处于犹豫徘徊当中。直到这次,实在是忍不住想试试 Rust 嵌入式开发,弄几个传感器搞搞物联网方面的学习,于是狠心从某宝购买了一块4B 的板子。

下单后,就一直等待卖家发货,不停刷新着物流信息,经过两天,板子终于到我手中了。不管三七二十一,先组装好,然后跑个 Hello world 再说。

因为笔者不想直接在板子上搭开发环境,所以就要选择交叉编译,在本地电脑上编译好,再上传到板子里面去,而网上的交叉编译教程基本上都是 Linux 的,虽然跟 macOS 差别不是很大,但笔者还是觉得应该总结一下,并把这个过程分享出来。

有些朋友可能对交叉编译并不是很理解,这里笔者简述一下:当需要在 Windows 系统下编译 Linux 、 Android 或者 macOS 平台的目标文件时,就需要用到交叉编译,反过来说在 Linux 系统要编译 Windows 平台的应用,同样是需要用到交叉编译。交叉编译也不仅仅是指跨操作系统,还跟 cpu 架构有关。例如笔者情况就是在 macOS x86_64 的架构上将目标文件编译成 Linux arm7 架构可以运行的。

先来看一看笔者的板子

89c5832d63ef97d8c65e74090fc42fda.png

再往下就是这个交叉编译的过程了。

1、查看树莓派架构

uname -m

输出 armv7l 说明是 arm7 处理器,因此我们在 macOS 上要安装 arm7 相关编译器。

2、安装 arm7 架构的 gcc

wget https://mac.musl.cc/armv7l-linux-musleabihf-cross.tgz# 解压到制定目录tar zxvf armv7l-linux-musleabihf-cross.tgz -C $HOME# 配置环境变量vim ~/.profileexport PATH="$PATH:$HOME/armv7l-linux-musleabihf-cross/bin"source ~/.profile# 测试安装结果armv7l-linux-musleabihf-gcc -v

注意:$HOME为变量(实际对应当前用户目录),改成你需要的路径就可以了。

3、安装 rust 对应的 target

rustup target add armv7-unknown-linux-musleabihf

使用 rustup target add 命令添加目标平台,简单方便。

4、创建 rust 项目

cargo new hellopi --bin

5、在 rust 项目下配置 .cargo/config 文件为以下内容

[target.armv7-unknown-linux-musleabihf]linker="armv7l-linux-musleabihf-gcc"

6、交叉编译

cargo run --target=armv7-unknown-linux-musleabihf# 或者cargo run --target=armv7-unknown-linux-musleabihf --release

编译后在 ./target 目录下会生成一个目标平台文件夹 armv7-unknown-linux-musleabihf 而编译结果就在这个文件夹对应的 debug/release 目录下。

7、上传目标文件到树莓派

scp ./target/armv7-unknown-linux-musleabihf/release/hellopi pi@192.168.1.100:/home/pi

8、在树莓派上执行目标文件

# 使用 ssh 命令登录到树莓派,在 /home/pi 中执行目标文件./hellopi# 输出Hello, world!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值