QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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:004219

评论

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

Python读execl之xlrd库函数详解二:单元格相关

Python Excel 数据读取

Python读execl之xlrd库函数详解三:行、列相关

Python Excel 数据读取

WebUI自动化环境搭建

Python 自动化测试 selenium

从“服务”,到“赋能”,日日顺再次定义供应链生态建设

联营汇聚

组装式专家洞察|中国移动初瑞:基于智慧中台的“组装式”探索实践

信通院IOMM数字化转型团队

组装式应用 组装式创新 IOMM

CleanMyMac更新最新版本x4.12.5

茶色酒

CleanMyMac X2023

面试官:熔断和降级有什么区别?

小小怪下士

Java 后端 熔断

Java高手速成 | 图说重定向与转发

TiAmo

Java 重定向

Selenium WebDriver API 学习笔记(三):浏览器控制

Python 自动化测试 selenium

公司项目引入这种方式,开发应用又快又准

引迈信息

项目管理 程序员 敏捷开发 低代码

精选案例 |《金融电子化》:光大银行云原生背景下的运维监控体系建设

博睿数据

云原生 可观测性 智能运维 博睿数据 精选案例

面试官:熔断和降级有什么区别?

王磊

java面试

DawnSql构建数仓--DawnSql集群的安装

陈飞

分布式数据库 实时数仓 实时数据引擎 实时数据平台

聊聊系统上线前,SQL脚本的9大坑

程序员小毕

数据库 sql 程序员 后端 架构师

从 HTTP 到 gRPC:APISIX 中 etcd 操作的迁移之路

API7.ai 技术团队

api 网关 APISIX

小白指南:手把手教你用低代码开发一个应用页面

HarmonyOS开发者

HarmonyOS

Selenium WebDriver API 学习笔记(一):元素定位

Python 自动化测试 selenium

火山引擎入选《2022爱分析 · DataOps厂商全景报告》,旗下DataLeap产品能力获认可

字节跳动数据平台

大数据 云服务 数据产品

Outcome VS. Output:研发效能提升中,谁会更胜一筹?

LigaAI

敏捷开发 研发管理 技术管理 产品管理 企业号 2 月 PK 榜

通用 GPU 领先企业登临科技加入龙蜥社区,完成与龙蜥操作系统的兼容适配

OpenAnolis小助手

开源 操作系统 龙蜥社区 兼容 登临科技

什么是BOM?与焊盘不匹配,怎么办?

华秋电子

Python+Opencv解析一段视频并逐帧保存到本地

Python 数据读取 摄像头

DawnSql超越传统数据仓库

陈飞

分布式数据库 实时数仓 数仓 实时数据湖

2023 年 dotnet 仓库社区年度调查已经开始

newbe36524

C#

「Go框架」mvc模式:iris中的mvc包是如何将model、view、controller联系在一起的?

Go学堂

golang 开源 程序员 个人成长

低代码实现探索(五十六)低代码正确方式

零道云-混合式低代码平台

应用部署初探:6个保障安全的最佳实践

SEAL安全

应用部署 企业号 2 月 PK 榜 安全部署

详解 APISIX Lua 动态调试插件 inspect

API7.ai 技术团队

插件 api 网关 APISIX

这些「误区」99%的研发都踩过

程序人生 职场

一文读懂 | 什么是 DevOps?企业该如何落地 DevOps ?

SoFlu-JavaAI开发助手

Selenium WebDriver API 学习笔记(二):浏览器控制

Python 自动化测试 selenium

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