手摸手教你之Windows配置Rust开发环境

大家好,Rust以它的内存安全,没有GC而著名,常用于一些高性能的场景,可以用来写底层、系统、内核等。本文详细介绍在Windows环境下配置Rust环境。

0x0. 相关概念

1). channel

Rust 发布在三个不同的 channel 上:stable、beta、nightly,简单说就是三种不同的版本。

  • stable:Rust 的稳定版本,每 6 周发布一次。
  • beta:Rust 的公开测试版本,将是下一个 stable 版本。
  • nightly:每天更新,包含以一些实验性的新特性。

2). toolchain

一套 Rust 组件,包括编译器及其相关工具,并且包含 channel,版本及支持的平台信息。

3). target

指编译的目标平台,即:编译后的程序在哪种操作系统上运行。

4). component

toolchain 是由 component 组成的。

查看所有可用和已经安装的组件命令如下:

rustup component list

rustup 默认安装的组件:

  • rustc:Rust 编译器。
  • rust-std:Rust 标准库。
  • cargo:包管理和构建工具。
  • rust-docs:Rust 文档。
  • rustfmt:用来格式化 Rust 源代码。
  • clippy:Rust 的代码检查工具。

5). profile

为了方便对 component 进行管理,使用 profile 定义一组 component。

不同的 profile 包含不同的组件,安装 rustup 时有三种 profile 可选:

Profilecomponents
minimalrustc, rust-std, cargo
defaultrustc, rust-std, cargo, rust-docs, rustfmt, clippy
completeall

修改 profile 命令如下:

rustup set profile minimal

0x1. 下载 Rust

Rust 官网:https://www.rust-lang.org/tools/install

0x2. 安装 Rust

默认情况,Rust 依赖 C++ build tools,没有安装也关系。

这里我么选择 2,进行自定义安装。

输入:x86_64-pc-windows-gnu,其他的默认。

最后会确认安装信息,回车进行安装,会从网上下载文件,所以安装过程需要保证网络正常。

以下是一些常用的命令:

  1. rustup 相关
# 显示当前安装的工具链信息
rustup show
# 检查安装更新
rustup update
# 卸载
rustup self uninstall
# 设置当前默认工具链
rustup default stable-x86_64-pc-windows-gnu
# 查看帮助
rustup -h
# -------------------------->配置工具链
# 查看工具链
rustup toolchain list
# 安装工具链
rustup toolchain install stable-x86_64-pc-windows-gnu
# 卸载工具链
rustup toolchain uninstall stable-x86_64-pc-windows-gnu
# 设置自定义工具链
rustup toolchain link <toolchain-name> "<toolchain-path>"
# -------------------------->配置一个目录以及其子目录的默认工具链
# 查看已设置的默认工具链
rustup override list
# 设置该目录以及其子目录的默认工具链
rustup override set <toolchain> --path <path>
# 取消目录以及其子目录的默认工具链
rustup override unset --path <path>
# -------------------------->配置工具链的可用目标
# 查看目标列表
rustup target list
# 安装目标
rustup target add <target>
# 卸载目标
rustup target remove <target>
# 为特定工具链安装目标
rustup target add --toolchain <toolchain> <target>
# -------------------------->配置 rustup 安装的组件
# 查看可用组件
rustup component list
# 安装组件
rustup component add <component>
# 卸载组件
rustup component remove <component>
  1. rustc 相关
# 查看rustc版本
rustc --version
  1. cargo 相关
# 查看cargo版本
cargo --version
# 新建项目
cargo new <project_name>
# 构建项目
cargo build
# 运行项目
cargo run
# 检查项目
cargo check
# 查看帮助
cargo -h

0x3. 配置工具链安装位置

在系统环境变量中添加如下变量:

CARGO_HOME 指定 cargo 的安装目录

RUSTUP_HOME 指定 rustup 的安装目录

默认分别安装到用户目录下的.cargo.rustup 目录

0x4. 配置国内镜像

1). 配置 rustup 国内镜像

在系统环境变量中添加如下变量(选一个就可以,可以组合):

# 清华大学
RUSTUP_DIST_SERVER:https://mirrors.tuna.tsinghua.edu.cn/rustup
RUSTUP_UPDATE_ROOT:https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup
# 中国科学技术大学
RUSTUP_DIST_SERVER:https://mirrors.ustc.edu.cn/rust-static
RUSTUP_UPDATE_ROOT:https://mirrors.ustc.edu.cn/rust-static/rustup

2). 配置 cargo 国内镜像

在 cargo 安装目录下新建 config 文件(注意 config 没有任何后缀),文件内容如下:

[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"
replace-with = 'tuna'

# 清华大学
[source.tuna]
registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"

# 中国科学技术大学
[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"
# 设置代理
[http]
proxy = "127.0.0.1:8889"
[https]
proxy = "127.0.0.1:8889"

0x5. Windows 交叉编译 Linux 程序

目标服务器是 Linux(CentOS 7) 64bit, 所以我们添加的 target 应该是x86_64-unknown-linux-gnu(动态依赖) 或者x86_64-unknown-linux-musl(静态依赖)

解释:

  • 动态依赖:目标服务器需要包含动态依赖的相关库(用户共享库)

  • 静态依赖,目标服务器不需要包含相应的库,但是打包文件会更大些

    1). 添加需要的 target

rustup target add  x86_64-unknown-linux-musl

2). 在 cargo 安装目录下新建 config 文件(注意 config 没有任何后缀),添加的文件内容如下:

[target.x86_64-unknown-linux-musl]
linker = "rust-lld"

3). 构建

cargo build --target x86_64-unknown-linux-musl

0x6. 参考

  1. 官方指南:https://kaisery.github.io/trpl-zh-cn/

好了,本期内容到这里就结束了,喜欢这篇文章的朋友可以帮忙点一个免费的赞,这对我很重要,我们下期再见!拜拜

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值