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 组成的。
查看所有可用和已经安装的组件命令如下:
1 | 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 可选:
Profile | components |
---|---|
minimal | rustc, rust-std, cargo |
default | rustc, rust-std, cargo, rust-docs, rustfmt, clippy |
complete | all |
修改 profile 命令如下:
1 | rustup set profile minimal |
0x1. 下载 Rust
0x2. 安装 Rust
默认情况,Rust 依赖 C++ build tools
,没有安装也关系。
这里我么选择 2,进行自定义安装。
输入:x86_64-pc-windows-gnu
,其他的默认。
最后会确认安装信息,回车进行安装,会从网上下载文件,所以安装过程需要保证网络正常。
以下是一些常用的命令:
- rustup 相关
1 | # 显示当前安装的工具链信息 |
- rustc 相关
1 | # 查看rustc版本 |
- cargo 相关
1 | # 查看cargo版本 |
0x3. 配置工具链安装位置
在系统环境变量中添加如下变量:
CARGO_HOME
指定 cargo
的安装目录
RUSTUP_HOME
指定 rustup
的安装目录
默认分别安装到用户目录下的.cargo
和.rustup
目录
0x4. 配置国内镜像
1). 配置 rustup 国内镜像
在系统环境变量中添加如下变量:
1 | # 中国科学技术大学 |
2). 配置 cargo 国内镜像
在 cargo 安装目录下新建 config 文件(注意 config 没有任何后缀),文件内容如下:
1 | [source.crates-io] |
0x5. Windows 交叉编译 Linux 程序
目标服务器是 Linux(CentOS 7) 64bit
, 所以我们添加的 target 应该是x86_64-unknown-linux-gnu
(动态依赖) 或者x86_64-unknown-linux-musl
(静态依赖)
解释:
动态依赖:目标服务器需要包含动态依赖的相关库(用户共享库)
静态依赖,目标服务器不需要包含相应的库,但是打包文件会更大些
1). 添加需要的 target
1 | rustup target add x86_64-unknown-linux-musl |
2). 在 cargo 安装目录下新建 config 文件(注意 config 没有任何后缀),添加的文件内容如下:
1 | [target.x86_64-unknown-linux-musl] |
3). 构建
1 | cargo build --target x86_64-unknown-linux-musl |