Rust在M1上交叉编译到x86_64平台

最近在使用阿里云的Serverless平台使用Rust来写一些小的函数,
但是因为自己的电脑是M1,而阿里云的Serverless不支持Arm平台。

而通过官方建议使用docker来编译的话,速度实在是令人难以接受。
还不如直接在本机交叉编译,速度还能快一些。

既然阿里云的机器不支持arm平台,那么我们的选择就是编译为
x86_64-unknown-linux-gnu 或者编译为x86_64-unknown-linux-musl。

他们的区别是,x86_64-unknown-linux-gnu是不带libc的,
因此要求程序的运行环境有glibc。
而x86_64-unknown-linux-musl自己实现了libc。因此,在x86_64-unknown-linux-musl上编译的程序是没有外部依赖的,在任何linux上都可运行。

x86_64-unknown-linux-gnu

添加rustup支持

rustup target add x86_64-unknown-linux-gnu

安装链接器

brew install SergioBenitez/osxct/x86_64-unknown-linux-gnu

需要注意的是,这个还挺耗时的,需要耐心等待一会儿

项目配置

在项目目录下增加.cargo目录,目录下创建config。这是为了让这个配置只在当前项目生效。如果以后的项目也都有交叉编译的需求,大可直接更改用户目录下的.cargo的config。

config文

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值