Rust 基本环境安装

rust 基本介绍请看上一篇文章:rust 介绍

rustup

介绍

rustup 是 Rust 语言的安装器和版本管理工具。通过 rustup,可以轻松地安装 Rust 编译器(rustc)、标准库和文档。它也允许你切换不同的 Rust 版本或目标平台,以及管理多个 Rust 版本。

安装步骤

类 unix 操作系统

在类 Unix(MacOS, Ubuntu, Centos, …Linux)系统中, 打开终端执行以下命令安装 rustup

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

执行安装后,将会下载并安装 Rust 编程语言的官方编译器。

安装途中,会询问你安装配置,如果没有特殊需求,我们输入 1 使用默认配置,并回车。

默认配置及解释如下

  1. default host tripleaarch64-unknown-linux-gnu 是一个目标三元组(target triple),用于指示编译器目标平台的体系结构、厂商、系统、和ABI(应用程序二进制接口)。这个配置告诉 Rust 编译器为哪种类型的系统构建代码。
  2. default toolchain: 默认情况下,Rust 安装程序会安装 stable 版本的工具链。Rust 有几个发布渠道:稳定版(stable)测试版(beta)开发版(nightly)。稳定版是经过充分测试,随时可用于生产环境的版。默认使用稳定版工具链是为了保证开发的稳定性和代码的可靠性。
  3. profiledefault 配置文件会安装 Rust 编程语言的常用组件,例如标准库CargoRustfmt。Rustup 提供了不同的配置文件,如 minimal,它只安装最必要的组件,或 complete,它包含了所有可用的组件和工具。
  4. modify PATH variable: Rust 安装程序询问是否要修改环境变量 PATH。同意修改 PATH 会将 Rust 的可执行文件路径(如 cargorustc 等)添加到你的系统环境变量 PATH 中。这样做的目的是为了确保你可以在任何地方(比如在终端或命令行中)运行 Rust 工具链的命令,无需指定完整的路径。

接下来,安装程序将会安装一系列 rust 工具链:

  1. cargo: Cargo 是 Rust 的包管理工具,用于管理 Rust 项目的依赖、编译和发布。它相当于其他编程语言中的 npm、pip 等工具。Cargo通过Cargo.toml文件追踪项目依赖,并且能够处理项目的构建、测试、文档生成等任务。
  2. clippy: Clippy 是 Rust 的一种静态分析工具(Linter),用于在代码编写阶段发现常见错误和改进建议。它提供了许多lints(规则),通过对代码进行分析,帮助提升代码的质量和性能。
  3. rust-docs: 这个组件包含了 Rust 编程语言的标准库文档。此文档允许开发者离线阅读和查找相关API的用法,是学习和参考Rust标准库的重要资料。
  4. rust-std: 这是 Rust 的标准库组件,包含了预编译的Rust标准库,供目标平台使用。标准库提供了很多编程基础设施,如基本类型、标准宏、I/O操作、线程和并发控制工具等。
  5. rustc: 这是 Rust 的编译器,负责将 Rust 代码编译成机器代码。rustc提供了编译、链接等功能,是Rust程序开发的核心工具。
  6. rustfmt: Rustfmt 是一个代码格式化工具,用来自动格式化 Rust 代码风格。它通过重写源代码来保证代码风格一致,可读性和风格上的规范性,便于团队合作和项目维护。

安装完成后,重启终端或者执行以下命令使其生效:

source "$HOME/.cargo/env"

windows 系统

直接点击下载安装程序:rustup-init.exe,或者根据 https://rustup.rs/ 官网进行下载。

双击安装程序后,将会弹出小黑框,询问你是否安装了 C++ 构建工具,这里输入 y 跳过即可。

windows 后续安装步骤与类 Unix 安装基本一致,可以直接参考类 Unix 安装部分。

验证安装结果

安装完成后,重新打开终端让更改生效,验证安装是否成功,运行:

rustc --version

此命令显示已安装的 Rust 版本。

rustup 常用命令

1. 更新 rustup 本身

rustup self update

2. 卸载 rustup

rustup self uninstall

3. 查看当前已安装的 Rust 版本

rustup show

4. rustup 检查更新

rustup check

5. 更新到最新稳定版

rustup update

cargo

介绍

cargo 是 Rust 的构建工具和包管理器。使用 cargo,可以方便地创建新项目、构建项目、运行项目、测试项目,并且可以轻松地将你的Rust库发布到 crates.io,Rust的包管理库。

常用命令

1. 创建新项目

cargo new <project_name>

创建一个新的项目,会同时生成 Cargo.toml 配置文件与 src 目录,如果是不是在 git 仓库下创建,将同时初始化为 git 仓库。

2. 构建项目

cargo build

构建项目,会在项目目录下的 target/debug 目录生成可执行文件或库。

3. 构建并运行项目

cargo run

构建并运行 Rust 程序。

4. 运行测试

cargo test

运行项目中定义的测试函数。

5. 生成文档

cargo doc

为项目构建文档,便于用户了解库的使用方法和功能。

6. 发布到 crates.io

cargo publish

将库代码打包并发布到 crates.io,允许其他人在他们的项目中作为依赖使用。

编辑器

得益于 Ferrous Systems 公司开源的 rust-analyzer , 为许多代码编辑器(VS Code、Emacs、Vim 等)都提供了代码补全和跳转定义等功能。

以下是一些常用的 Rust 开发编辑器:

  • VS Code : 需安装rust-analyzer 等插件
  • Sublime Text:需安装 Rust Enhanced 等插件
  • Zed: 高性能编辑器,自带 Rust 开发环境
  • RustRover: JetBrains 公司出的 Rust 专属 IDE
  • Intellij IDEA:需安装 Rust 插件,目前插件不再维护。

目前我本人在编写 Rust 程序时在使用 Zed, 主要 Zed 编辑器目前比较干净,没有太多乱七八糟的东西,对于 Rust 更是开箱即用,比较推荐,当然这个根据个人偏好自行选择便是,实际区别不大。

常见问题

在添加新的 crate 到 Cargo.toml 文件并运行 cargo build 时,有时会遇到以下错误:

Blocking waiting for file lock on package cache

解决方法

这个问题通常是由于 cargo 尝试访问被锁定的缓存文件导致的。

  1. 打开终端,进入 ~/.cargo 目录,
  2. 使用 ls -a 命令查看是否有 .package-cache 文件。
  3. 如果存在,使用 rm 命令删除该文件即可。

相关资料

  • target triple: https://doc.rust-lang.org/nightly/rustc/platform-support.html
  • rust 官网:https://www.rust-lang.org/
  • rustup 官网:https://rustup.rs/
  • rustup 安装方法:https://forge.rust-lang.org/infra/other-installation-methods.html
  • crates 官网:https://crates.io/
  • cargo 官方文档:https://doc.rust-lang.org/cargo/index.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/472666.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JDBC 核心 API

引入 mysql-jdbc 驱动 驱动 jar 版本的选择&#xff1a;推荐使用 8.0.25&#xff0c;省略时区设置java 工程导入依赖 项目创建 lib 文件夹导入驱动依赖 jar 包jar 包右键 - 添加为库 JDBC 基本使用步骤 注册驱动获取连接创建发送 sql 语句对象发送 sql 语句&#xff0c;并获…

安卓学习笔记之五:Android Studio_骰子案例3(Kotlin搭配 Jetpack Compose实现)

使用 Compose 创建一款交互式 Dice Roller Android 应用。 完成&#xff1a; 定义可组合函数。使用组合创建布局。使用 Button 可组合项创建按钮。导入 drawable 资源。使用 Image 可组合项显示图片。使用可组合项构建交互式界面。使用 remember 可组合项将组合中的对象存储到…

在线Windows鼠标主题转换器(ani动态鼠标改为Xcur)

文章目录 前言在哪访问如何使用惨淡的界面简单粗暴的使用方法目前的bug 前言 在这篇文章中&#xff0c;我使用一些方法把转换脚本包装成了在线服务&#xff0c;现在我将说明如何使用服务。 在哪访问 还是说明一下&#xff0c;访问链是这个&#xff1a;https://www.sakebow.c…

【python】python入门(变量名)

Hi~ o(*&#xffe3;▽&#xffe3;*)ブ今天一起来看看python入门之变量名吧~~ 变量名的规定&#xff1a; 举个例子&#xff1a; “违法”的变量名们 my love/my &#xff01;love错误&#xff1a;中间不能是空格或者其他符号1my_love错误&#xff1a;不能数字开头"my_l…

蓝桥杯第十四届电子类单片机组程序设计

目录 前言 蓝桥杯大赛历届真题&#xff08;点击查看&#xff09; 一、第十四届比赛题目 1.比赛原题 2.题目解读 1&#xff09;任务要求 2&#xff09;注意事项 二、任务实现 1.NE555读取时机的问题 1&#xff09;缩短计数时间 2&#xff09;实时读取 2.温度传感器读…

Qt for android : Qt6.6.2 搭建 环境

环境说明 参考Qt助手: Assistant 6.6.2 (MinGW 11.2.0 64-bit) ***Gradle : Gradle wrapper, version 8.3***JDK11 SDK Tools / NDK 25.1.8937393 参考 Qt For Android : Qt5.13.1 Qt for android: Qt6.4搭建环境遇到的几个问题

.NET高级面试指南专题八【 垃圾回收机制GC】

.NET的垃圾回收&#xff08;Garbage Collection&#xff0c;简称GC&#xff09;是一种自动内存管理机制&#xff0c;负责在运行时追踪和释放不再使用的对象&#xff0c;以避免内存泄漏和提高应用程序的性能。 垃圾回收的基本原理&#xff1a; 标记阶段&#xff08;Mark Phase&…

前端工程化面试题 | 12.精选前端工程化高频面试题

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

机器学习面试:请你谈谈生成模型和判别模型的区别?

生成模型:由数据学习联合概率密度分布P(XY)&#xff0c;然后求出条件概率分布P(YIX)作为预测的模型&#xff0c;即生成模型:P(Y|X) P(X,Y)/ P(X)(贝叶斯概率)。基本思想是首先建立样本的联合概率概率密度模型P(X,Y)然后再得到后验概率P(Y|X)&#xff0c;再利用它进行分类。典型…

RK3568笔记十七:LVGL v8.2移植

若该文为原创文章&#xff0c;转载请注明原文出处。 本文介绍嵌入式轻量化图形库LVGL 8.2移植到Linux开发板ATK-RK3568上的步骤。 主要是参考大佬博客&#xff1a; LVGL v8.2移植到IMX6ULL开发板_lvgl移植到linux-CSDN博客 一、环境 1、平台&#xff1a;rk3568 2、开发板:…

python实现多图绘制系统

文章目录 需求和框架AxisFrameAxisListDarwSystem 从零开始实现一个三维绘图系统 需求和框架 本文希望实现下图所示的绘图系统&#xff0c;下面详细分析需求变化。 和之前实现的绘图系统相比&#xff0c;首先是多了【新增】和【删除】这两个按钮&#xff0c;其功能是控制绘图数…

游戏安全组件运行时发生异常1-0-0

可能是这个服务&#xff0c;可能被禁用了。 如果是文件缺少直接修复游戏