rust 基本介绍请看上一篇文章:rust 介绍
rustup
是 Rust 语言的安装器和版本管理工具。通过 rustup
,可以轻松地安装 Rust 编译器(rustc
)、标准库和文档。它也允许你切换不同的 Rust 版本或目标平台,以及管理多个 Rust 版本。
在类 Unix(MacOS, Ubuntu, Centos, …Linux)系统中, 打开终端执行以下命令安装 rustup
:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
执行安装后,将会下载并安装 Rust 编程语言的官方编译器。
安装途中,会询问你安装配置,如果没有特殊需求,我们输入 1
使用默认配置,并回车。
默认配置及解释如下:
aarch64-unknown-linux-gnu
是一个目标三元组(target triple),用于指示编译器目标平台的体系结构、厂商、系统、和ABI(应用程序二进制接口)。这个配置告诉 Rust 编译器为哪种类型的系统构建代码。stable
版本的工具链。Rust 有几个发布渠道:稳定版(stable)、测试版(beta) 和 开发版(nightly)。稳定版是经过充分测试,随时可用于生产环境的版。默认使用稳定版工具链是为了保证开发的稳定性和代码的可靠性。default
配置文件会安装 Rust 编程语言的常用组件,例如标准库
、Cargo
和 Rustfmt
。Rustup 提供了不同的配置文件,如 minimal
,它只安装最必要的组件,或 complete
,它包含了所有可用的组件和工具。PATH
。同意修改 PATH
会将 Rust 的可执行文件路径(如 cargo
、rustc
等)添加到你的系统环境变量 PATH
中。这样做的目的是为了确保你可以在任何地方(比如在终端或命令行中)运行 Rust 工具链的命令,无需指定完整的路径。接下来,安装程序将会安装一系列 rust 工具链:
Cargo.toml
文件追踪项目依赖,并且能够处理项目的构建、测试、文档生成等任务。rustc
提供了编译、链接等功能,是Rust程序开发的核心工具。安装完成后,重启终端或者执行以下命令使其生效:
source "$HOME/.cargo/env"
直接点击下载安装程序:rustup-init.exe,或者根据 https://rustup.rs/ 官网进行下载。
双击安装程序后,将会弹出小黑框,询问你是否安装了 C++ 构建工具,这里输入 y
跳过即可。
windows 后续安装步骤与类 Unix 安装基本一致,可以直接参考类 Unix 安装部分。
安装完成后,重新打开终端让更改生效,验证安装是否成功,运行:
rustc --version
此命令显示已安装的 Rust 版本。
rustup
本身rustup self update
rustup self uninstall
rustup show
rustup
检查更新rustup check
rustup update
cargo 是 Rust 的构建工具和包管理器。使用 cargo,可以方便地创建新项目、构建项目、运行项目、测试项目,并且可以轻松地将你的Rust库发布到 crates.io,Rust的包管理库。
cargo new <project_name>
创建一个新的项目,会同时生成 Cargo.toml
配置文件与 src
目录,如果是不是在 git
仓库下创建,将同时初始化为 git
仓库。
cargo build
构建项目,会在项目目录下的 target/debug
目录生成可执行文件或库。
cargo run
构建并运行 Rust 程序。
cargo test
运行项目中定义的测试函数。
cargo doc
为项目构建文档,便于用户了解库的使用方法和功能。
cargo publish
将库代码打包并发布到 crates.io,允许其他人在他们的项目中作为依赖使用。
得益于 Ferrous Systems 公司开源的 rust-analyzer
, 为许多代码编辑器(VS Code、Emacs、Vim 等)都提供了代码补全和跳转定义等功能。
以下是一些常用的 Rust 开发编辑器:
rust-analyzer
等插件Rust Enhanced
等插件Rust
插件,目前插件不再维护。目前我本人在编写 Rust 程序时在使用 Zed, 主要 Zed 编辑器目前比较干净,没有太多乱七八糟的东西,对于 Rust 更是开箱即用,比较推荐,当然这个根据个人偏好自行选择便是,实际区别不大。
在添加新的 crate 到 Cargo.toml
文件并运行 cargo build
时,有时会遇到以下错误:
Blocking waiting for file lock on package cache
这个问题通常是由于 cargo 尝试访问被锁定的缓存文件导致的。
~/.cargo
目录,ls -a
命令查看是否有 .package-cache
文件。rm
命令删除该文件即可。