【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的基本知识在下一节中介绍。

参考和拓展

相关推荐
To_OC3 分钟前
搞懂二叉树递归遍历,我居然是从爬楼梯开始的
前端·javascript·数据结构
大熊猫侯佩7 分钟前
Swift 6.4 的 Ref / MutableRef 大揭秘:给值类型开一扇“安全的小窗”
ios·swift·编程语言
何何____8 分钟前
svg基本图形绘制介绍
前端·css
weedsfly8 分钟前
Sass 运算 vs CSS calc():你的计算该放在哪一层?
前端
在水一缸21 分钟前
重塑前端开发认知:当 AI 遇见 HTML 的“不合理有效性”
前端·人工智能·html·ai编程·claude·前端开发
SwJieJie26 分钟前
Webpack vs Vite 构建工程化实战(Vue 项目深度解析)
前端·vue.js·webpack·node.js
swg32132134 分钟前
Redis实现主从选举
java·前端·redis
英俊潇洒美少年37 分钟前
前端核心性能指标全解(CWV三大指标+辅助指标、检测方式、优化、面试背诵)
前端
云水一下39 分钟前
Vue.js从零到精通系列(八):项目实战——构建一个完整的电商后台管理系统
前端·javascript·vue.js
Csvn40 分钟前
Vue3 响应式陷阱:解构赋值后页面不动了?Proxy 的"隐形成员"在搞鬼
前端·vue.js