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

参考和拓展

相关推荐
IT_陈寒16 小时前
React 性能优化:5个实战技巧让首屏加载提升50%,开发者亲测有效!
前端·人工智能·后端
rising start17 小时前
前端基础一、HTML5
前端·html·html5
鬼谷中妖17 小时前
JavaScript 循环与对象:深入理解 for、for...in、for...of、不可枚举属性与可迭代对象
前端
大厂码农老A17 小时前
你打的日志,正在拖垮你的系统:从P4小白到P7专家都是怎么打日志的?
java·前端·后端
im_AMBER17 小时前
CSS 01【基础语法学习】
前端·css·笔记·学习
DokiDoki之父17 小时前
前端速通—CSS篇
前端·css
pixle017 小时前
Web大屏适配终极方案:vw/vh + flex + clamp() 完美组合
前端·大屏适配·vw/vh·clamp·终极方案·web大屏
ssf198717 小时前
前后端分离项目前端页面开发远程调试代理解决跨域问题方法
前端
@PHARAOH17 小时前
WHAT - 前端性能指标(加载性能指标)
前端
尘世中一位迷途小书童17 小时前
🎨 SCSS 高级用法完全指南:从入门到精通
前端·css·开源