Windows安装Rust环境(详细教程)

一、 安装mingw64(C语言环境)

Rust默认使用的C语言依赖Visual Studio,但该工具占用空间大安装也较为麻烦,可以选用轻便的mingw64包。

1.1 安装地址

(1) 下载地址1-GitHub:Releases · niXman/mingw-builds-binaries · GitHub
(2) 下载地址2-WinLibs:WinLibs - GCC+MinGW-w64 compiler for Windows

1.2 压缩包

1.2.1 压缩包下载

下面以GitHub下载为例:
在这里插入图片描述

1.2.2 压缩包关键字说明

  1. 架构(Architecture):x86_64表示压缩包适用于64位的x86处理器架构。
  2. 版本(Version):13.2.0-release表示压缩包的版本号为13.2.0,并且是正式发布的版本。
  3. 操作系统平台(Operating System Platform):
    • posix:适用于符合POSIX标准的操作系统,如Linux、UNIX等。
    • win32:适用于32位的Windows操作系统。
      (如果Linux和Window混用选posix;如果只用Windows开发选win32)
  4. 异常处理(Exception Handling):
    • seh:压缩包使用结构化异常处理(Structured Exception Handling)来处理异常。
  5. 运行时库(Runtime Library):
    • msvcrt:压缩包使用Microsoft Visual C++运行时库(MSVCRT)。
    • ucrt:压缩包使用通用C运行时库(UCRT)。
  6. 版本修订(Revision):rev1表示这些压缩包的修订版本号为1。

综上所述,根据自身需求和操作系统选择适合的压缩包。

1.2.3 msvcrt和ucrt说明

1、 MSVCRT(Microsoft Visual C++ Runtime):
MSVCRT是Microsoft Visual C++编译器的旧版运行时库,用于支持在Windows系统上使用Visual C++编译的程序。
它提供了许多标准C库函数和C++运行时函数的实现,用于支持程序的运行和调试。
MSVCRT通常与早期的Visual C++版本(如Visual Studio 2010及更早版本)相关联。

2、UCRT(Universal C Runtime):
UCRT是自Windows 10起引入的新一代运行时库,旨在提供更好的兼容性和性能。
UCRT是一个通用的C运行时库,用于支持使用C语言编译的程序,而不仅仅是限于Visual C++编译器。
它提供了对标准C库函数的更新实现,并支持一些新的C标准(如C11标准)。
UCRT与较新版本的Visual C++(如Visual Studio 2015及更新版本)相关联。

综上所述,UCRT更新推荐开发使用,如果考虑兼容则用MSVCRT

1.2.4 压缩包部署
(1) 此次选择下载x86_64-13.2.0-release-posix-seh-ucrt-rt_v11-rev1.7z包,如下图:

在这里插入图片描述

(2) 将包解压到“D:\Program Files\”目录下,如下图:
在这里插入图片描述

(3) 将压缩包的bin配置到path环境中,如下图:
在这里插入图片描述

(4) cmd窗口输入命令“gcc -V”,正常显示版本信息说明安装成功,如下图:
在这里插入图片描述

二、 安装Rust

2.1 配置rustup和cargo目录

如果不喜欢安装到C盘,可以通过设置环境变量,改变默认安装位置:

RUSTUP_HOME D:\rust\rustup_home
CARGO_HOME D:\rust\cargo_home

在这里插入图片描述

2.2 配置加速安装地址

(1) 直接从官方网站下载会很慢,改用国内镜像加速安装,设置以下环境变量:

RUSTUP_DIST_SERVER https://mirrors.tuna.tsinghua.edu.cn/rustup
RUSTUP_UPDATE_ROOT https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup

在这里插入图片描述

(2) 配置库镜像(类似python的pip):在“C:\Users\用户名\”下创建“.cargo”文件夹,在文件夹内创建“config”文件,如下图:

[source.crates-io]
registry = “https://github.com/rust-lang/crates.io-index”
replace-with = ‘tuna’
[source.tuna]
registry = https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git

在这里插入图片描述

2.3 下载Rust安装程序

(1) 从Rust的官网下载 rustup-init:https://www.rust-lang.org/zh-CN/
在这里插入图片描述

(2) 下载的exe,如下图:
在这里插入图片描述

(3) 双击启动安装程序,如下图:
在这里插入图片描述

(4) 上图的1选项要求必须安装C/C++的编译环境,默认是 visual studio安装器,而此次使用mingw64,因此需要手动修改为 2,然后输入 y,如下图:
在这里插入图片描述

(5) 继续输入 2,如下图:
在这里插入图片描述

(6) 输入 x86_64-pc-windows-gnu 表示安装64位的gnu版本,如下图:
在这里插入图片描述

(7) 接下来都是回车,使用默认配置,如下图:
在这里插入图片描述

(8) 上面配置完毕后,到最后一步还是回车,然后开始安装;安装过程中要从网络下载很多东西,需耐心等待,其中已下载过的包会自动跳过,如下图:
在这里插入图片描述

(9) 看到最后的提示,按下回车退出安装窗口。

2.4 安装后验证
打开cmd窗口,输入 rustc --version ,输出版本信息说明安装成功,如下图:

在这里插入图片描述

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

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

相关文章

Excel地址

解题思路: 根据题中歪歪和笨笨的话可以有两种解法。 1.输入的数为多大,则循环1多少次,当值为27时就要进行进位操作。这时要分情况讨论。 当集合中元素为一个时,如26,则需要变为1 1,集合元素个数加一。 当…

2023年全球软件质量效能大会(QECon上海站):核心内容与学习收获(附大会核心PPT下载)

会议聚焦于软件质量和效能的提升。在智能时代,随着数字化的深入人心,软件正在随着云计算、移动互联网、物联网等的发展而不断进化,软件对企业的发展愈加重要,大家对软件的质量要求也在从传统功能、性能、安全这些基础层面向着用户…

(超详细)5-YOLOV5改进-添加A2Attention注意力机制

1、在yolov5/models下面新建一个A2Attention.py文件,在里面放入下面的代码 代码如下: import numpy as np import torch from torch import nn from torch.nn import init from torch.nn import functional as Fclass DoubleAttention(nn.Module):def …

87.乐理基础-记号篇-反复记号(一)反复、跳房子

内容参考于:三分钟音乐社 上一个内容:86.乐理基础-记号篇-速度记号-CSDN博客 首先是反复记号表总结图: 当前是写前两个记号,其余记号后面写:这些反复记号最主要的目的很简单,还是为了节约纸张&#xff0c…

蓝桥杯单片机组备赛——LED指示灯的基本控制

🎈教程介绍:博客依据b站小蜜蜂老师的教程进行编写,文中会对老师传授的知识进行总结并加入自己的一些理解。教程链接 文章目录 一、点灯介绍二、相关数字芯片介绍2.1 74HC138介绍2.2 74HC573介绍2.3 74HC02介绍 三、代码设计思路四、代码编写…

Spring MVC 异常处理器

异常处理器 如果不加以异常处理,错误信息肯定会抛在浏览器页面上,这样很不友好,所以必须进行异常处理。 异常处理思路 系统的dao、service、controller出现都通过throws Exception向上抛出,最后由springmvc前端控制器交由异常处…

解决跨域问题的8种方案(最新最全)

什么是跨域: 浏览器对于javascript的同源策略的限制,例如http://a.cn下面的js不能调用http://b.cn中的js,对象或数据(因为http://a.cn和http://b.cn是不同域),所以跨域就出现了.同域:简单的解释就是域名相同,端口相同,协议相同 为什么需要跨域? 在最一…

LeetCode 590. N 叉树的后序遍历

590. N 叉树的后序遍历 给定一个 n 叉树的根节点 root ,返回 其节点值的 后序遍历 。 n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值 null 分隔(请参见示例)。 示例 1: 输入:root [1,null,…

C桑(Cython)从入门到入土(2): np数组操作对比

C桑(Cython)从入门到入土 2. np数组操作对比 Node sc518 Copy has image data of type unsigned long long实际上, 👆🏻这个错误是我探索Cython的缘起… code1: Form: 更现代的方法是使用内存视图而不是指针: cdef np.uint32_t[:,:,::1] …

【昕宝爸爸小模块】深入浅出之Java 8中的 Stream

深入浅出之Java 8中的 Stream 一、🟢典型解析1.1 🟠Java 8中的Stream 都能做什么1.2 🟠Stream的创建 二、✅ Stream中间操作2.1 🟠Filter2.2 🟠Map2.3 🟠limit / skip2.4 🟠sorted2.5 &#x1…

CCF模拟题 202309-1 坐标变换(其一)

问题描述 试题编号: 202309-1 试题名称: 坐标变换(其一) 时间限制: 1.0s 内存限制: 512.0MB 问题描述: 对于平面直角坐标系上的坐标(x,y),小P定义了一个包含…

【C#】当重复使用一段代码倒计时时,使用普通类和静态方法,实现简单的封装性、可扩展性、可维护性

欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是《C#》序列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。…

程序员找不到工作原因以及解决办法

程序员找不到工作原因以及解决办法 程序员当前就业环境真的很差,所以找工作跳槽一定要讲究方式方法,接下来我讲一下你找不着工作的原因以及解决办法,大家先点赞收藏,内容敏感我怕你刷不到 沟通200个全是未读那就是你的城市没有招聘…

安全强化学习笔记

这里写自定义目录标题 参考资料环境算法CPO 2017 ICMLPCPO 2019 ICLRFOCOPS 2020 NIPSCRPO 2021 ICMLCUP 2022 NIPS TRPO 如何看懂TRPO里所有的数学推导细节? - 小小何先生的回答 - 知乎 参考资料 Safe Reinforcement Learning 安全/约束强化学习路线图(Safe RL…

Java的NIO

Java NIO(New I/O,新 I/O)是 Java 1.4 版本引入的一组用于进行非阻塞 I/O 操作的 API。相比于传统的 Java I/O(或称为 IOStream),Java NIO 提供了更为灵活、可扩展和高性能的 I/O 处理方式。 Java NIO 的核…

Python-动态烟花【附完整源码】

烟花代码 运行效果:Python动态烟花代码 import pygame from random import randint from random import uniform from random import choice import math vector pygame.math.Vector2 # 重力变量 gravity vector(0, 0.3) # 控制窗口的大小 DISPLAY_WIDTH DISP…

C#核心--实践小项目(贪吃蛇)

C#核心实践小项目 -- 贪吃蛇 必备知识点--多脚本文件 (可观看CSharp核心--52集进行了解) 必备知识点--UML类图 必备知识点--七大原则 贪吃蛇 项目展示 控制方向的是:WSAD 确定键是:J 需求分析(UML类图&#xff09…

第11章 GUI Page495~496 步骤三十一:另存为别的文件

当前的TrySaveFile(bool hint_on_dirty true)有两个特征无法满足“另存”的需求: 一,TrySaveFile仅在数据为“新”的时候才提问用户输入文件名。而“另存”总是要求用户输入一个文件名,多以它总应该弹出一个文件选择对话框,这也…

【网络安全】【密码学】【北京航空航天大学】实验二、数论基础(中)【C语言和Java实现】

实验二、数论基础(中) 一、实验内容 1、扩展欧几里得算法(Extended Euclid’s Algorithm) (1)、算法原理 已知整数 a , b ,扩展的欧几里得算法可以在求得 a , b 的最大公约数的同时,找到一对…

LeetCode[105] 从前序与中序遍历序列构造二叉树

给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,20,7] 输出: [3,9,20,null,null,15,7] …