当前位置:   article > 正文

第N次入门Rust - 1.开发环境安装_cargo vendor

cargo vendor


前言

学习一门编程语言的第一步肯定是安装好开发环境啦~


1.1 Rust工具链简介

这里简单介绍常见的几个工具是用来做什么的(因为更多的工具我也不知道用来干什么…)

  • rustup:官方提供的一个工具链管理工具。rust与java等运行在虚拟机上的语言不同,rust项目需要编译成指定操作系统在指定架构上的程序才能运行,为此编译rust项目时需要使用不同的工具链“套装”,rustup可以通过用户使用简单的命令来安管理(安装、切换、更新、删除等)这些“套装”。另外rust还分stable(功能稳定),beta(功能基本稳定,带点新功能),nightly(完全不稳定,每晚自动构建)版本,可以通过rustup进行安装稳定程度不同的工具链“套装”(有些插件或者工具可能需要使用nightly才能编译)。当然初学阶段我们也不需要考虑这么多,我们只需要能用最基础的功能,一些扩展的功能等要用的时候再去查怎么用。
  • rustc:rust编译器,即输入rust的源文件,输出编译后的可执行文件,当然一般我们不会直接使用rustc,就好像我们不会直接使用javac编译程序一样。
  • cargo:rust官方包管理平台,作用类似于java的maven,python的pip,nodejs的npm等。使用rustup安装工具链“套装”后就会有。我们会使用cargo去创建项目、管理项目、搜索第三方库(crate)、维护项目依赖、构建项目、运行单元测试、安装/卸载rust实现的软件…rust工具链里面我们打交道最多的就是cargo了。

下面开始介绍如何安装rust工具链

1.2 Rust工具链安装

1.2.1 rustup安装

配置rustup镜像

因为rust的大部分资源都位于国外,国内下载会比较慢,所以建议安装工具链前配置国内的镜像源,这样安装会比较快。这里推荐使用字节的镜像(rsproxy.cn),直接登录该网站也有简单的说明怎样配置。

# source ~/.bashrc
export RUSTUP_DIST_SERVER="https://rsproxy.cn"
export RUSTUP_UPDATE_ROOT="https://rsproxy.cn/rustup"
  • 1
  • 2
  • 3

windows将这两个选项加到环境变量里面即可

安装rustup

curl --proto '=https' --tlsv1.2 -sSf https://rsproxy.cn/rustup-init.sh | sh
  • 1

也可以去官网查看如何下载安装:https://www.rust-lang.org/tools/install。

如果在windows环境下安装,安装脚本可能会检查有没有vs的编译环境,没有的话可以根据提示先把相关的依赖安装了再继续后续的rustup安装。

rustup简单使用

  • rustup:查看帮助文档,看有哪些命令可以使用的;
  • rustup update:更新当前的工具链;
  • rustup self uninstall:卸载
  • rustup doc查看本地文档,这个巨好用,除了有官方的rust教程以外,还有标准库文档,平时开发的时候会经常查询(然后你就会发现rust的标准库相比于go, python等语言来说是多么简洁,很多常用的功能都没有…当然这个与rust语言的定位有关,但也希望后续能丰富起来)。
  • rustup component add XXX:安装一些常见的工具,比如语言服务器、格式化工具、语法检查工具等(也就是说跟go类似,rust提供了一整套开发用的辅助工具,无论是使用Intellj的rust插件、vscode、还是vim,其背后运行的辅助工具是相同的,但是同一类工具还是会有不同实现,有些非官方的工具体验会比官方的强很多,后续也会介绍,这一点不需要担心,因为编辑器会提示我们安装什么工具):
    rustup component add rls
    rustup component add rustfmt
    rustup component add clippy
    
    • 1
    • 2
    • 3

1.2.2 cargo

配置

前面配置的环境变量只是对rustup起作用,对于cargo来说还需要另外配置镜像源。

# $HOME/.cargo/config
[source.crates-io]
replace-with = 'rsproxy'

[source.rsproxy]
registry = "https://rsproxy.cn/crates.io-index"

[registries.rsproxy]
index = "https://rsproxy.cn/crates.io-index"

[net]
git-fetch-with-cli = true
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

windows环境配置在相应的文件中即可。

常用指令的基本用法

  • cargo:查看帮助文档;
  • cargo --version:查看版本;
  • cargo new project-name:创建一个项目(包括这个项目的目录);
  • cargo init:直接在当前目录初始化项目;
  • cargo build:构建项目,命令要在项目根目录中执行,默认构造的是debug版本,输出结果会保存在target/debug中;
    • cargo build --release:编译release版本,不带调试信息,性能会更高,输出结果会保存在target/release中;
  • cargo run:运行编译好的项目,命令要在项目根目录中执行,如果源码被修改过,会重新编译修改过的部分然后再运行;
  • cargo fmt:格式化项目源码;
  • cargo check:仅检查代码是否可以编译,但不生成可执行文件;
  • cargo clean:清理之前的构建产物;
  • cargo update:根据本地的lock file更新依赖;
  • cargo doc:生成文档,如果加上--open则表示生成后在浏览器中打开;
  • cargo fix:自动修复一些编译器提示的错误,或者进行过rust edition升级后,也可以让项目自动升级到新的edition上;
  • cargo search XXX:搜索第三方crate XXX;
  • cargo test:执行项目中的测试文件;
  • cargo install XXX:下载编译并安装XXX,默认安装路径$HOME/.cargo/bin
  • cargo uninstall XXX:移除一个已安装的可执行文件XXX;
  • cargo package:打包项目;
  • cargo publish:将项目上传;
  • cargo vendor:将依赖迁入本地项目中,避免安装时要下载第三方库;

1.3 vscode配置

需要安装的插件如下:

  • Rust Extension Pack:包含Rust(Rust官方提供的插件,RLS、语法检查、代码补全等),crates(crate依赖管理),BetterTOML(TOML语法支持)。安装后把Rust关掉,因为官方提供的这个插件差强人意 现在默认就是使用rust-analyzer,所以直接安装这个插件即可;
  • rust-analyzer:用来替代Rust的的第三方插件,它提供的能力比Rust强很多,体验也更好(比如类型推断标识,这对Rust开发者来说非常使用),但是一定要注意要把Rust关掉,否则rust-analyzer不会生效
  • CodeLLDB:调试工具。如果是windows下使用会有如下需要注意的:
    • 会下载主体,而且还比较慢,偶尔插件升级后会自动下载主体,这个时候这个插件功能好像会用不了;
    • 启动debug后同一个变量在watch列表会出现多次(每次变量被访问一次就会创建一个),不像linux/macos那样清晰;

1.4 常用资料

  • 本地标准库文档:file:///path-to-rust-env/.rustup/toolchains/stable-x86_64-pc-windows-msvc/share/doc/rust/html/std/index.html
  • 第三方库官方仓库:https://crates.io/ 可查询有什么库及基础用法;
  • 第三方库的文档搜索:https://docs.rs/,由于rust大部分功能都需要依靠第三方库,因此做rust开发基本需要连网,不然好多资料查起来非常不方便;
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/925175
推荐阅读
相关标签
  

闽ICP备14008679号