AI 年度盘点与2025发展趋势展望,50+案例解析亮相AICon 了解详情
写点什么

Rustup 将大大简化 Rust 代码交叉编译工作

  • 2016-05-26
  • 本文字数:830 字

    阅读完需:约 3 分钟

Rust 1.8 中引入的Rustup,是一个针对Rust 语言的工具链管理器(toolchain manager),其目标是让交叉编译Rust 代码更加简单。Mozilla 工程师 Brian Anderson 近期与我们分享了关于此的更多细节。

Rustup 是一个命令行应用,能够下载并在不同版本的 Rust 工具链中进行切换 —— 如编译器rustc和标准库,该应用所支持的平台数量不少。事实上,rustc本身就支持大约 56 个平台,而rustup实际上能够为其中 14 个平台管理编译器,为 30 个平台管理标准库。

此外,rustup 能够追踪工具链的具体版本,包括 Rust 的 nightly 版本、beta 版本和发行版本。举个例子,你可以用 rustup检查程序在下一个 Rust 发行版下的行为。但是之前,你需要安装当前平台下的 Rust beta 版本的工具链,然后利用该工具链运行单元测试。使用rustup之后,可以通过执行类似下面的代码完成:

复制代码
$ rustup install beta
$ rustup run beta cargo test

再举一个例子,Anderson 介绍了如何使用rustup为使用musl标准库(而非大家常用的glibc标准库)的 Linux 版本创建静态二进制文件:

复制代码
$ rustup target add x86_64-unknown-linux-musl
$ cargo run --target=x86_64-unknown-linux-musl

rustup还是一个正在开发中的产品,将致力于扩充支持平台的数量。特别要注意,rustup目前还无法针对 Android 平台进行无缝交叉编译。这要求开发者手动下载 Android NDK,并针对性地创建一个“独立的工具链”。Anderson 表示, rustup将在未来的版本中解决这个问题,增加获取并配置所要求的连接器和 C 语言工具链的能。另外,rustup还计划通过 Emscripten 支持 Web 开发。

rustup是 Anderson 开发的 multirust的后继者,并取代了其位置。rustup仍被看作处于 beta 阶段,但是目前已经可以安装并试用。

查看英文原文: Rustup Aims to Make Cross-Compiling Rust Much Easier


感谢丁晓昀对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-05-26 19:004177

评论

发布
暂无评论
发现更多内容

架构实战营模块 7 作业

Roy

架构实战营

leetcode 696. Count Binary Substrings 计数二进制子串(简单)

okokabcd

LeetCode 算法与数据结构

监控系统夜莺分布式部署方案

CTO技术共享

架构师学习毕业总结

Pengfei

Mimir 源码分析(二):效率爆棚的分片压缩

Grafana 爱好者

Mimir

架构实战训练营|毕业总结

Roy

架构实战营

每日一 R「18」类型系统进阶(二)

Samson

学习笔记 8月月更 ​Rust

快速搭建 SpringCloud Alibaba Nacos 配置中心!

王磊

spring cloud alibaba

毕业设计 - 电商秒杀项目

阿拉阿拉幽幽

Mimir 速体验(Part 2): 使用 Grafana agent 实现多租户数据抓取

Grafana 爱好者

Prometheus Mimir

Mimir 速体验(Part 3): 通过 runtime 配置实现租户细粒度管理

Grafana 爱好者

可观测性 Grafana Mimir

Mimir 源码分析(三):任意时间范围乱序数据写入

Grafana 爱好者

Mimir

vue2 el-checkbox实现分组全选/反选/半选

Mr.Cactus

Element UI JavaScrip 分组全选

Kubernetes 微服务接口设计原则

CTO技术共享

【机器学习】梯度下降之数据标准化

计算机魔术师

8月月更

【机器学习】浅谈正规方程法&梯度下降

计算机魔术师

8月月更

Mimir 速体验(Part 1): 使用 docker-compose 一键部署单体版集群

Grafana 爱好者

可观测性 Prometheus Mimir

消息队列选型对比

CTO技术共享

毕业总结

Geek_7a789a

阿里巴巴、华为教你如何把数据真正用起来 | DBT How

王和全

华为 数据中台 数字化转型 数据运营 证券行业

【小程序 | 启航篇】一文打通任督二脉

计算机魔术师

8月月更

电商秒杀系统设计

Roy

架构实战营

架构实战营模块 8 作业

Roy

架构实战营

Mimir 源码分析(一):海量series chunk 同时落盘带来的挑战

Grafana 爱好者

Mimir

【实践】高性能PHP应用容器workerman快速入门

迷彩

即时通讯 通讯协议 8月月更 workerman 高性能php

什么是 Golang?[译]

宇宙之一粟

番外篇 of 《Mimir 源码阅读(三): 任意乱序数据的写入》

Grafana 爱好者

Mimir

Git -- 入门这一篇就够了 (入门必备,超硬核)

计算机魔术师

8月月更

融齐鲁,行中国,为天下溪:新华三的数字化赋能之路

脑极体

MySQL数据库之数据查询

乌龟哥哥

8月月更

设计电商秒杀系统

Geek_7a789a

Rustup将大大简化Rust代码交叉编译工作_语言 & 开发_Sergio De Simone_InfoQ精选文章