【Rust精华小册】2. Rust开发环境准备,Go!

如果你只是想体验一下Rust或者快速验证想法可以访问play.rust-lang.org

正式的学习和开发还是需要在你的本地安装Rust,这就用到了Rustup。

Rustup是Rust社区提供的工具链管理工具,使用Rustup来安装和管理工具链,并且可以随时切换工具链的版本。访问地址: rustup.rs/

本节课用到的软件可以直接通过官网下载或者加群获取:添加微信code2c,回复"加群"

在windows11安装Rust

这里以windows11为例,其它版本也是类似。在windows平台有两个版本可供选择:

x86_64-pc-windows-gnu x86_64-pc-windows-msvc

GNU 和 MSVC 都是编译器工具链,它们提供一套工具和库,这些工具和库被用来构建、链接和调试应用程序。Rust使用了它们提供的连接器 ,其实还有第三种选择就是LLVM,我认为Rust最终会在各个平台使用LLVM的连接器来取代目前的GNU和MSVC的地位,因为rust编译器在汇编阶段使用的就是LLVM,为了统一起来极有可能会采用LLVM的连接器,但目前这项工作还没有完成。为了获得更好的兼容性和运行效率,我们在windows平台上选择MSVC。

www.rust-lang.org/zh-CN/learn...

下面的命令窗口提示,你的电脑缺少vc++环境(连接器和windows api库),也就是需要安装MSVC。

这里我们选择第一项,他会下载vs的安装包。。。等待它下载完成。

下载完成会弹出安装弹框,点击"继续",接下来会下载安装程序并安装vs。

msvc与windows sdk必须勾选,然后点击"安装"

出现下面界面就说明已经安装成功了,就可以关掉了。

关掉vs,回到cmd继续安装rust,选择第一项默认安装即可。

到这一步下载工具链并设置好PATH环境变量。

当看到上面这个提示就说明已经安装完成了,最后测试rust是否安装成功

shell 复制代码
# 查看rustup版本
rustup -V
# 查看工具链
rustup show
# 查看cargo版本
cargo -V
# 查看编译器版本
rustc -V

在Linux安装Rust

类Unix系统上安装Rust非常简单,只要执行下面命令就可以了。

sh 复制代码
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

安装完成后参考windows平台上的验证方法,查看工具链的版本信息,以确保能正常使用。

更多参数查看:rust-lang.github.io/rustup/inst...

Hello world

任何一门编程语言的入门都少不了Hello world,我们快速写一个helloworld程序,准备玩起来: 创建一个文件hello.rs

rust 复制代码
// hello.rs
fn main() {
    println!("Hello, world!");
}

编译并执行:

shell 复制代码
$ rustc hello.rs
$ .\hello.exe # on Windows

接下来我们需要选择一个趁手的编辑器,目前有vim、vscode和去年jetbrains推出的RustRover,可以根据你的喜好选择。我强烈建议你试用一下RustRover,虽然它还在测试阶段。 www.jetbrains.com/rust/

经过上面的步骤,我们已经能愉快开发rust项目。 但是开发项目通常会有一套规范或者说最佳实践,来管理项目依赖和约定目录结构,不至于像早期c/c++每个项目都有一套自己规范。现代语言通常都有的工具,在js中有npm,java中有maven,rust同样提供了类似的工具来管理项目就是cargo。有了cargo我们就可以创建rust package,构建以及发布package到官方仓库。

下面简单演示如何使用cargo新建一个项目:

shell 复制代码
$ cargo new hello_world
$ cd hello_world
$ tree .
.
├── Cargo.toml
└── src
    └── main.rs

1 directory, 2 files

cargo的基本知识在下一节中介绍。

参考和拓展

相关推荐
Surprisec4 分钟前
动手实践YJS:构建你的第一个实时协作文档编辑器
前端·javascript·面试
晴殇i4 分钟前
JavaScript新一代异步写法:不用await,性能提升80%
前端·面试
患得患失9496 分钟前
【前端】【React】useCallback的作用与使用场景总结
前端·javascript·react.js
wordbaby7 分钟前
TanStack Query :现代 Web 应用的异步状态管理利器
前端
江沉晚呤时10 分钟前
深入解析策略模式在C#中的应用与实现
java·服务器·开发语言·前端·.netcore
Hamm12 分钟前
如何在TypeScript里使用类封装枚举来实现Java的枚举形参倒置
java·前端·typescript
树上有只程序猿34 分钟前
如果单表数据量大,只能考虑分库分表吗?
前端
蘑菇头爱平底锅42 分钟前
数字孪生-DTS-孪创城市-前端用代码实现行政区划分
前端·数据可视化
安迪小宝1 小时前
python基础语法13-装饰器
开发语言·前端·python
鸿蒙场景化示例代码技术工程师1 小时前
实现文件List拖动鸿蒙示例代码
前端