Rust安装手册

news2024/12/23 4:56:18

Rust 环境搭建

Rust 支持很多的集成开发环境(IDE)或开发专用的文本编辑器。

官方网站公布支持的工具如下(https://www.rust-lang.org/zh-CN/tools):

本教程将使用 Visual Studio Code 作为我们的开发环境(Eclipse 有专用于 Rust 开发的版本,对于初学者也是不错的选择)。

注意:IntelliJ IDEA 安装插件之后难以调试,所以推荐习惯使用 IDEA 的开发者使用 CLion,但 CLion 不是免费的。

搭建 Visual Studio Code 开发环境

首先,需要安装最新版的 Rust 编译工具和 Visual Studio Code。

Rust 编译工具:https://www.rust-lang.org/zh-CN/tools/install

Visual Studio Code:https://code.visualstudio.com/Download

Rust 的编译工具依赖 C 语言的编译工具,这意味着你的电脑上至少已经存在一个 C 语言的编译环境。如果你使用的是 Linux 系统,往往已经具备了 GCC 或 clang。如果你使用的是 macOS,需要安装 Xcode。如果你是用的是 Windows 操作系统,你需要安装 Visual Studio 2013 或以上的环境(需要 C/C++ 支持)以使用 MSVC 或安装 MinGW + GCC 编译环境(Cygwin 还没有测试)。

安装 Rust 编译工具

Rust 编译工具推荐使用刚才从上方链接中下载的 Rustup 安装。下载好的 Rustup 在 Windows 上是一个可执行程序 rustup-init.exe。(在其他平台上应该是 rustup-init.sh )。

现在执行 rustup-init 文件:

上图显示的是一个命令行安装向导。

如果你已经安装 MSVC (推荐),那么安装过程会非常的简单,输入 1 并回车,直接进入第二步

如果你安装的是 MinGW,那么你需要输入 2 (自定义安装),然后系统会询问你 Default host triple? ,请将上图中 default host triple 的 “msvc” 改为 “gnu” 再输入安装程序:

其它属性都默认。

设置完所有选项,会回到安装向导界面(第一张图),这是我们输入 1 并回车即可。

进行到这一步就完成了 Rust 的安装,可以通过以下命令测试:

rustc -V # 注意的大写的 V

如果以上两个命令能够输出你安装的版本号,就是安装成功了。

搭建 Visual Studio Code 开发环境

下载完 Visual Studio Code 安装包之后启动安装向导安装(此步骤不在此赘述)。

安装完 Visual Studio Code (下文简称 VSCode)之后运行 VSCode。

在左边栏里找到 “Extensions”,并查找 “Chinese”,安装简体中文扩展,使界面变成中文。(如果你愿意用英文界面或计算机不支持中文字符,此步骤可以跳过)。

用同样的方法再安装 rust-analyzer 和 Native Debug 两个扩展。

重新启动 VSCode,Rust 的开发环境就搭建好了。

现在新建一个文件夹,如 runoob-greeting。

在 VSCode 中打开新建的文件夹:

打开文件夹之后选择菜单栏中的"终端"-“新建终端”,会打开一个新的终端:

在终端中输入命令:

cargo new greeting

当前文件下下会构建一个名叫 greeting 的 Rust 工程目录。

现在在终端里输入以下三个命令:

cd ./greeting 
cargo build 
cargo run 

系统在创建工程时会生成一个 Hello, world 源程序 main.rs,这时会被编译并运行:

至此,你成功的构建了一个 Rust 命令行程序!

有关在 VSCode 中调试程序的问题,详见 Cargo 教程。

Rust 安装须知 (官网的)

入门

如果您希望通过一份详细的步骤指南来开始学习 Rust ,请阅读马上开始页面。

rustup 管理工具链

Rust 由工具 rustup 安装和管理。Rust 有着以 6 星期为周期的 快速版本迭代机制,支持 大量平台,因而不同时期存在大量不同的 Rust 构建版本。 rustup 用于管理不同平台下的 Rust 构建版本并使其互相兼容, 支持安装由 Beta 和 Nightly 频道发布的版本,并支持其他用于交叉编译的编译版本。

如果您曾经安装过 rustup,可以执行 rustup update 来升级 Rust。

更多信息请查阅 rustup 文档。

配置 PATH 环境变量

在 Rust 开发环境中,所有工具都安装在 ~/.cargo/bin 目录中,您可以在这里找到包括 rustccargorustup 在内的 Rust 工具链。

Rust 开发者通常会将该目录加入 PATH环境变量中。在安装过程中,rustup 会尝试配置 PATH。 由于不同平台、命令行 Shell 之间存在差异,rustup 中也可能存在 Bug,因此在终端重启或用户重新登录之前,rustupPATH 的修改可能不会生效,甚至完全无效。

如果安装后在终端尝试执行 rustc --version 失败,那么,以上内容就是最可能的原因。

卸载 Rust

在任何时候如果您想卸载 Rust,您可以运行 rustup self uninstall。但我们会想念您的!

实操

![[Pasted image 20230601223638.png]]

当安装完成之后,在vscode 的终端里不能显示时,重启一下电脑就好了。

总结

  1. 首先,我们至此终于可以说一声C语言~YYDS。Rust,又一款C语言编写编译器的开发语言。

  2. cargo实在是太 crazy了。配合 new命令,可以直接创造一个包含相关文件的文件夹。内容就是我们的第一个rust程序

  3. 配合 cargo build 可以构建执行程序,而使用cargo run 则是先构建再执行。

  4. rust的构建方式,是在主目录下创建一个名为target的文件夹。在文件夹内包含debug的所有调试信息。当然,程序也在这里。

  5. 完整的内容如下,不得不说,挺多的。![[Pasted image 20230602092324.png]]

  6. 使用rust ,要首先能明了 编译器工具 cargo 能做到哪些事情。这里详细列出:

Rust's package manager

Usage: cargo [+toolchain] [OPTIONS] [COMMAND]

Options:
  -V, --version             Print version info and exit
      --list                List installed commands
      --explain <CODE>      Run `rustc --explain CODE`
  -v, --verbose...          Use verbose output (-vv very verbose/build.rs output)
  -q, --quiet               Do not print cargo log messages
      --color <WHEN>        Coloring: auto, always, never
  -C <DIRECTORY>            Change to DIRECTORY before doing anything (nightly-only)
      --frozen              Require Cargo.lock and cache are up to date
      --locked              Require Cargo.lock is up to date
      --offline             Run without accessing the network
      --config <KEY=VALUE>  Override a configuration value
  -Z <FLAG>                 Unstable (nightly-only) flags to Cargo, see 'cargo -Z help' for details
  -h, --help                Print help

Some common cargo commands are (see all commands with --list):
    build, b    Compile the current package
    check, c    Analyze the current package and report errors, but don't build object files
    clean       Remove the target directory
    doc, d      Build this package's and its dependencies' documentation
    new         Create a new cargo package
    init        Create a new cargo package in an existing directory
    add         Add dependencies to a manifest file
    remove      Remove dependencies from a manifest file
    run, r      Run a binary or example of the local package
    test, t     Run the tests
    bench       Run the benchmarks
    update      Update dependencies listed in Cargo.lock
    search      Search registry for crates
    publish     Package and upload this package to the registry
    install     Install a Rust binary. Default location is $HOME/.cargo/bin
    uninstall   Uninstall a Rust binary

See 'cargo help <command>' for more information on a specific command.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NIO之Selector解读

目录 Selector 简介 为什么会出现Selector Selector 和 Channel 关系 可选择通道(SelectableChannel) Channel 注册到 Selector 选择键(SelectionKey) Selector 的使用方法 Selector 的创建 注册 Channel 到 Selector 轮询查询就绪操作 停止选择的方法 Selector 简…

全志Tina Linux下如何编译glibc库

本文整理自问答&#xff1a;https://bbs.aw-ol.com/topic/3615/ make工具 注意由于AW服务器make版本为3.8.1&#xff0c;在编译glibc高版本时候不兼容&#xff0c;所以需要更新make工具。假如服务器make版本较高&#xff0c;可以不用更新make工具。 网址 http://ftp.gnu.org/…

chatgpt赋能python:Python函数介绍

Python函数介绍 函数是Python编程中最重要的概念之一。它是一段可重用代码的集合&#xff0c;通过一个名字来暴露出来&#xff0c;可以在Python程序的多个地方调用。函数可以接收任意数量的参数&#xff0c;也可以返回值。Python中函数定义使用关键字 def。 Python函数定义 …

ChatGPT教你学Python爬虫

“ chatgpt作为一个编程助手&#xff0c;虽然不能帮我们解决一个复杂的业务需求&#xff0c;但在处理一些具体工具类需求上&#xff0c;能够快速生成我们需要的代码&#xff0c;尤其对一些编程初学者&#xff0c;不仅能借助chatgpt快速完成自己的小工具&#xff0c;还能在与cha…

硬件 TCP/IP 协议栈

目录 全硬件的TCP/IP 协议栈简介以太网接入单片机方案以太网接口芯片CH395Q 简介以太网接口芯片CH395Q 命令简介以太网接口芯片CH395Q 寄存器配置与使用移植CH395Q 源码 TCP_Client 实验TCPClient 配置流程TCPClient 实验硬件设计程序设计下载验证 WebServer 实验WebServer 简介…

chatgpt赋能python:Python编程:如何写文件到指定目录

Python编程&#xff1a;如何写文件到指定目录 Python是一种高级编程语言&#xff0c;它具有简单易学、可读性高的特点&#xff0c;并且能够应用于各种领域&#xff0c;尤其是数据科学和机器学习领域。在Python中&#xff0c;我们可以通过编写代码实现将文件写入到指定目录中。…

JavaEE(系列18) -- 文件操作I/O

前言: 我们平时所说的文件都是指硬盘上的文件,而我们之前在JavaSE阶段代码绝大部分都是围绕内存展开的,定义个变量&#xff0c;其实就是内存上申请空间。 内存和硬盘的区别: 速度&#xff1a;内存比硬盘快很多。空间&#xff1a;内存空间比硬盘小。成本&#xff1a;内存比硬盘贵…

利用CiteSpace快速锁定领域内最新研究热点并制作精美的可视化专题图

【基于Citespace和vosviewer文献计量学相关论文 】 ​ 01 文献计量学方法与应用 1. 文献计量学方法基本介绍 2. 与其他综述方法区别联系 3. 各学科领域应用趋势近况 4. 主流分析软件优缺点对比 5. 经典高分10SCI思路复盘 6. 软件安装与Java环境配置 02 主题确定、数据检…

Power BI 如何高效管理度量值和字段

内容说明 背景需求&#xff1a; 当分析场景涉及大量数据和分析度量值时&#xff0c;为了更好的区分原始数据和用于分析的度量值&#xff0c;需要合理安排和管理数据字段。 本文总结了三种方法&#xff1a; 移动度量值位置创建字段文件夹&#xff1a;子文件夹和多个文件夹创建…

chatgpt赋能python:Python函数改名:为什么需要改名以及如何改名

Python函数改名&#xff1a;为什么需要改名以及如何改名 在Python编程中&#xff0c;函数是非常常见和重要的代码语句&#xff0c;用于完成特定的任务或操作。然而&#xff0c;在实际开发中&#xff0c;我们可能需要对已有函数进行改名&#xff0c;这个过程可能并不简单&#…

国产BI工具大比拼,帆软Fine BI和观远BI到底该怎么选型?

之前写了一篇关于BI如何选型的文章《「BI选型秘诀」BI工具不知道怎么选择&#xff1f;这张选型评分表你一定要收藏&#xff01;》。 文章发布后&#xff0c;不少朋友私信我&#xff0c;想要我出个国产BI工具的测评&#xff0c;今天就开始第一期&#xff1a;帆软 VS 观远 仍旧…

el-form嵌套el-table编辑,校验信息显示在气泡框中

文章目录 概要整体架构流程技术名词解释技术细节 概要 提示&#xff1a;这里可以添加技术概要 正常情况下&#xff0c;el-table可编辑表格&#xff0c;如果输入框内容不合理的情况下&#xff0c;错误提示会显示在el-input下方对应。 但是&#xff0c;我不得不将错误提示放到el…

chatgpt赋能python:Python几行几列是什么?

Python几行几列是什么&#xff1f; Python几行几列是一款基于Python语言开发的优秀的划线工具。这个工具能够帮助开发者轻松创建、管理和分享自己的Python代码。Python几行几列是一款高效、易用的Python编辑器&#xff0c;它既可以用于快速编写Python代码&#xff0c;也可以用…

PG数据库 column “has_submit_am“ is of type numeric but expression is of type bool

目录 场景&#xff1a; 现象&#xff1a; 复盘分析&#xff1a; 解决方法&#xff1a; 测试&#xff1a; 扩展&#xff1a; 场景&#xff1a; 今天遇到一个问题&#xff0c;现场数据库中做了boolean隐式转换smallint时在执行对应的插入时一直报错 column "has_submit…

【Python NLTK】零基础也能轻松掌握的学习路线与参考资料

Python 自然语言处理工具包&#xff08;Natural Language Toolkit&#xff0c;简称 NLTK&#xff09;是一款 Python 的库&#xff0c;主要用于处理自然语言的相关问题&#xff0c;如文本清洗、标记化、分词、语义分析、词性标注、文本分类等功能&#xff0c;是数据科学家和机器…

Facebook不同账户类型的投放格式【Facebook企业户】

在Facebook企业户中&#xff0c;不同的广告类型具有多样化的投放格式&#xff0c;旨在帮助企业更好地吸引目标受众、提升品牌曝光和实现营销目标。 一、广告类型的概述 Facebook提供了多种广告类型&#xff0c;包括图片广告、视频广告、幻灯片广告、动态产品广告等。每种广告类…

vue项目H5页面在苹果手机点击输入框输入内容时 页面自动放大

遇到的问题 用vue写H5页面时,iPhone手机点击input搜索框,输入内容时,页面会自动放大。 解决方法 在public文件夹下找到html文件&#xff0c;打开后加上user-scalableno 就行 <meta name"viewport" content"widthdevice-width,initial-scale1.0,user-scala…

【从零开始进行高精度手眼标定 eye in hand(小白向)1 原理推导】

从零开始进行高精度手眼标定 eye in hand&#xff08;小白向&#xff09;1 原理推导 前言原理推导公式推导为什么在数据采集中至少需要两个位姿信息 MATLAB编程计算A矩阵的计算和获取matlab计算代码B矩阵的计算和获取matlab计算矩阵B 前言 最近由于组内的相关工作需求&#xf…

pytorch中Dataset、Dataloader、Sampler、collate_fn相互关系和使用说明

参考&#xff1a; https://blog.csdn.net/Chinesischguy/article/details/103198921 参考&#xff1a; https://zhuanlan.zhihu.com/p/76893455 参考&#xff1a;https://blog.csdn.net/lilai619/article/details/118784730 参考&#xff1a;https://pytorch.org/docs/stabl…