Skip to content

环境搭建

Rust入门是真jb难啊

1.安装MSVC

MSVC是由微软在Windows系统上定制的C/C++编译器,而Rust需要依赖这个编译器进行编译,生成可执行文件。

链接: Microsoft C++ 生成工具

进入以下页面:

在这里插入图片描述

点击“下载生成工具”,此时你会得到一个叫做“vs_BuildTools”的可执行程序。

双击运行它,进入一个Visual Studio Installer页面,点击"继续",进入以下页面:

在这里插入图片描述

选择"使用 C++ 的桌面开发",右侧的可选项默认勾选即可,这个程序默认安装到C盘,如果C盘不够大,可以在顶部"安装位置"部分修改:

在这里插入图片描述

确认安装路径完毕后,点击右下角"安装"。

在这里插入图片描述

等到进度条跑完,就成功安装了,这需要一段时间。

在这里插入图片描述

2.安装Rust

进入Rust官网

image-20240709162718939

image-20240709162824395

直链下载:

安装之后打开文件会出来一个终端界面,直接按enter

image-20240709162959483

安装成功之后终端输入cargo,出现如下界面即为安装成功

image-20240709163405451

3.更新rust

Rust 的升级非常频繁。如果您安装 Rustup 后已有一段时间,那么很可能您的 Rust 版本已经过时了。运行 rustup update 获取最新版本的 Rust。

4.卸载rust

如果你觉得rust太难了,那么现在就可以运行rustup self uninstall卸载

8.查看rust版本

如下指令可以查看rust版本

bash
rustc --version
  • 结果格式: rustc x.y.z (abcabcabc yyyy-mm-dd)
  • 一会显示最新稳定版的:版本号、commit hashcommit 日期

6.本地文档

安装Rust的时候,还会在本地安装文档,可离线浏览

运行 rustup doc 可在浏览器打开本地文档

image-20251129184539544

但这是英文的,那我哪能看得懂

7.编译和运行rust程序

7.1 创建rust文件

我们以后使用vscode来编写rust项目

先在一个文件夹中创建一个rust文件,以.rs为后缀

image-20251129185348475

并写入以下内容

rust
fn main(){
    println!("hello world!")
}

7.2 编译程序

终端中使用rustc main.rs编译这个rust程序

编译好之后,根目录会出现两个二进制文件

  • main.exe(windows),main(Linux/mac):可执行程序,windows系统中有exe后缀,其他两个系统中没有后缀
  • main.pdb:包含调试信息,只在windows系统中生成

image-20251129185700281

然而这只是编译好了我们的程序,还没有运行

7.3 运行程序

想要运行,我们需要打开该程序的文件夹,在地址栏输入cmd回车打开终端(vscode的终端不行)

然后再终端中输入main.exe(可不加后缀)

即可打印出我们刚才输入的hello world

image-20251129190647185

7.4 程序解析

定义函数:fn main() {}

  • 没有参数,没有返回值

  • main函数很特别:它是每个Rust可执行程序最先运行的代码

打印文本:println!("Hello, world!");

  • Rust的缩进是4个空格而不是tab

  • printIn!是一个 Rust macro(宏),不是函数,如果是函数的话,就没有感叹号

  • “Hello World”是字符串,它是println!的参数

  • 这行代码以;结尾,rust中每行代码都应以;结尾,除了最后一行

编译和运行是单独的两步

  • 运行 Rust程序之前必须先编译,命令为:rustc 源文件名

编译成功后,会生成一个二进制文件

  • 在Windows上还会生成一个.pdb文件,里面包含调试信息

Rust 是 ahead-of-time 编译的语言

  • 可以先编译程序,然后把可执行文件交给别人运行(无需安装Rust)

rustc 只适合简单的 Rust 程序,真正开项目还是的用cargo

8.Cargo

CargoRust 的构建工具和包管理器

在安装Rustup后,Cargo会一块被安装到你的电脑中

以下是一些常用且简单的指令

bash
cargo new <rust_project_name>   # 创建一个rust项目
cargo build  					# 构建rust项目
cargo run 						# 可以运行项目
cargo test 						# 可以测试项目
cargo doc 						# 可以为项目构建文档
cargo publish 					# 可以将库发布到 crates.io。

要检查您是否安装了 RustCargo,可以在终端中运行:

bash
cargo --version

更多cargo指令可访问:简介 - Cargo 手册 中文版

9.Cargo创建rust项目

9.1 创建项目

使用cargo new指令创建一个项目

bash
cargo new rust-test

就会创建好如下项目

image-20251129180440315

其目录结构如下

txt
rust-test
|- Cargo.toml
|- src
  |- main.rs

TOML(Tom's Obvious, Minimal Language)格式,是 Cargo 的配置格式,其中包含了项目的元数据依赖库

[pacakge],是一个区域标题,表示下方内容是用来配置包(package)的

  • name,项目名
  • version,项目版本
  • authors,项目作者
  • edition,使用的 Rust版本

[dependencies],另一个区域的开始,它会列出项目的依赖项。

在 Rust里面,代码的包称作 crate

src/main.rs 为编写应用代码的地方,让我们看看main.rs文件的内容

rust
fn main() {
    println!("Hello, world!");
}

里面只有一个main()函数,并且在里面打印了Hello, world!,从而可以知道

  • rust中定义函数需要使用fn关键字
  • main()函数为主函数
  • 可以用println!()函数打印内容

9.2 构建项目

执行cargo build命令可构建项目

  • 创建可执行文件:target/debug/hello_cargo(Linux/mac) 或target\debug\hello_cargo.exe(Windows)
  • 运行可执行文件:./target/debug/hello_cargo(Linux/mac) 或.\target\debug\hello_cargo.exe(Windows)

第一次运行cargo build会在顶层目录生成cargo.lock文件

  • 该文件负责追踪项目依赖的精确版本
  • 不需要手动修改该文件

9.3 构建并运行

若想一部到位,构建并运行,可以执行以下命令

bash
cargo run

该命令可编译代码+执行结果,如果之前编译成功过,并且源码没有改变,那么就会直接运行二进制文件

运行效果如下

image-20251129181314936

9.4 检查代码

cargo check指令可检查代码,确保能通过编译,但是不产生任何可执行文件

cargo check 要比 cargo build 快得多

  • 编写代码的时候可以连续反复的使用cargo check检查代码,提高效率

9.5 为发布构建

cargo build --release

  • 编译时会进行优化,代码会运行的更快,但是编译时间更长
  • 会在 target/release 而不是 target/debug 生成可执行文件

两种配置:

  • 一个开发
  • 一个正式发布

9.6 添加依赖

crates.io中,可以找到关于Rust的所有依赖库,在Rust中,通常把包称作crates

要在项目中添加库,只需要在Cargo.toml文件中写入如下代码,本案例使用的是名为ferris-says的库,ferris-says可以在控制台中打印一只螃蟹

toml
[dependencies]
ferris-says = "0.3.1"

dependencies意思为依赖项,想要添加其他依赖项,都需要下[dependencies]下书写

toml
[dependencies]
aaa = "0.3.1"
bbb = "1.2.1"
ccc = "1.3.1"
# .......

接着运行:

toml
cargo build

…之后 Cargo 就会安装该依赖。

运行此命令会创建一个新文件 Cargo.lock,该文件记录了本地所用依赖库的精确版本。

要使用该依赖库,我们可以打开 main.rs,删除其中所有的内容(它不过是个示例而已),然后在其中添加下面这行代码:

rust
use ferris_says::say;

这样我们就可以使用 ferris-says crate 中导出的 say 函数了。

修改main.rs的内容如下

rust
use ferris_says::say; // from the previous step
use std::io::{stdout, BufWriter};

fn main() {
    let stdout = stdout();
    let message = String::from("Hello fellow Rustaceans!");
    let width = message.chars().count();

    let mut writer = BufWriter::new(stdout.lock());
    say(&message, width, &mut writer).unwrap();
}

运行cargo run 运行项目

可以看到控制台中打印了一直螃蟹,至于上面代码写的都是什么鸟玩意,先不管,慢慢往后学

image-20251129182834316

MIT Licensed