Rust 支持很多的集成开发环境(IDE)或开发专用的文本编辑器。查看官网公布支持的开发工具。
本文采用的是 Microsoft C++ 生成工具 + Visual Studio Code 的方式。
Rust 的编译工具依赖 C 语言的编译工具,可以使用 Microsoft C++ 生成工具 或者 MinGW + GCC 编译环境。
安装 Microsoft C++ 生成工具
Microsoft C++ 生成工具 主要是为 Rust 提供一个 C 编译环境,它是 Visual Studio 的一个可以单独安装的组件。如果系统安装了 Visual Studio 2013 及以上版本,并且在安装期间勾选了 Microsoft C++ 生成工具,那么就不需要再额外安装 Microsoft C++ 生成工具 了。
下载 Microsoft C++ 生成工具。
双击下载的安装包 vs_buildtools__xxx.xxx
,在弹出的窗口中勾选【C++ 生成工具】和英语语言包,然后点击【安装】。
安装 rustup
安装 rustup
rustup 是 Rust 的安装和管理工具,默认情况下,它会同时安装这些工具:rustc,rust-std,cargo,rust-docs,rustfmt,clippy。其中,rustc 是 Rust 的编译工具,cargo 是 Rust 的包管理工具。
下载 RUSTUP-INIT.EXE
。
双击下载的 RUSTUP-INIT.EXE
,若操作系统没有安装 C 语言编译环境,在弹出的 CMD 窗口中会进行提示(见下图红色字)。
双击下载的 RUSTUP-INIT.EXE
,若已经安装了 Microsoft C++ 生成工具,则会展示以下内容。直接敲回车即可,因为它默认选的 C 语言编译环境就是 MSVC。
若要使用 MinGW + GCC 编译环境,则需要输入 2,进行自定义安装(需要提前安装 MinGW)。
安装成功:敲回车,安装结束。
确认:打开新的 cmd 窗口,输入 rustc --version
和 cargo --version
命令。
安装 VSCode 及相关插件
首先要安装 Visual Studio Code,然后在 VSCode 中安装下面的插件:
- rust-analyzer/Rust support for Visual Studio Code —— 提供代码补全、代码跳转、格式化等功能(安装其中一个即可)。
- TabNine —— 人工智能代码提示插件,很好用。
- C/C++ for Visual Studio Code 或者 CodeLLDB —— Debug 时需要用到的插件。
- TOML support for vscode
配置国内 Crate 源
在构建 Rust 项目时,Cargo 工具会从 "registry" 获取项目依赖包(Crate),默认的 "registry" 是 crates.io。但是在国内访问这个网站时往往速度比较慢,因此我们可以将其替换为国内的 Crate 源。
配置方法:在 $HOME/.cargo/config
文件中添加如下内容
[source.crates-io]
replace-with = 'ustc'
[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"
第一个 Rust 程序
新建一个 rust_demo
文件夹,然后用 VSCode 打开。在 VSCode 界面新建一个终端,输入下面的命令:
# 创建一个名为 helloworld 的包(工程)
cargo new helloworld
# 进入 helloworld 文件夹
cd .\helloworld\
# 构建
cargo build
# 运行(先构建再运行)
cargo run
可能会遇到的问题
程序运行时阻塞
提示信息:
PS F:\rust-demo> cd .\guessing_game\
PS F:\rust-demo\guessing_game> cargo run
Blocking waiting for file lock on package cache
解决方法:
如果确定没有多个程序占用,删除 ~/.cargo/.package-cache
文件。
修改镜像后下载 Crate 失败
报错信息:
PS F:\rust-demo\guessing_game> cargo build
Updating `git://mirrors.ustc.edu.cn/crates.io-index` index
warning: spurious network error (2 tries remaining): [35] SSL connect error (schannel: next InitializeSecurityContext failed: Unknown error (0x80092013) - ���ڵ������������ѻ���������������������)
warning: spurious network error (2 tries remaining): [35] SSL connect error (schannel: next InitializeSecurityContext failed: Unknown error (0x80092013) - ���ڵ������������ѻ���������������������)
warning: spurious network error (2 tries remaining): [35] SSL connect error (schannel: next InitializeSecurityContext failed: Unknown error (0x80092013) - ���ڵ������������ѻ���������������������)
warning: spurious network error (2 tries remaining): [35] SSL connect error (schannel: next InitializeSecurityContext failed: Unknown error (0x80092013) - ���ڵ������������ѻ���������������������)
warning: spurious network error (1 tries remaining): [35] SSL connect error (schannel: next InitializeSecurityContext failed: Unknown error (0x80092013) - ���ڵ������������ѻ���������������������)
warning: spurious network error (1 tries remaining): [35] SSL connect error (schannel: next InitializeSecurityContext failed: Unknown error (0x80092013) - ���ڵ������������ѻ���������������������)
warning: spurious network error (1 tries remaining): [35] SSL connect error (schannel: next InitializeSecurityContext failed
解决方法:
在 ~/.cargo/config
文件中加入下面的内容
[http]
check-revoke = false
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于