当前位置: 首页 > news >正文

windows安装rust

windows安装rust

  • 编译环境准备
    • 下载mingw64
    • 配置环境变量
  • Rust环境准备
    • 配置环境变量
    • 下载rust
  • 补充
    • 包查询地址
    • x86_64-pc-windows-gnu
    • 运行rust

Rust默认使用的是C语言环境,也就是Visual Studio,当我们直接点击rustup-init.exe文件进行安装时,Visual Studio会默认安装到我们的C盘,会占用大量的C盘空间。
我们可以采用轻量级的依赖包:mingw64。

编译环境准备

下载mingw64

首先下载mingw64,GitHub下载地址:https://github.com/niXman/mingw-builds-binaries/releases。

  • x86_64表示压缩包适用于64位的x86处理器架构。
  • posix:适用于符合POSIX标准的操作系统,如Linux、UNIX等。
  • win32:适用于Windows操作系统。
  • seh:压缩包使用结构化异常处理(Structured Exception Handling)来处理异常。
  • msvcrt:MSVCRT是Microsoft Visual C++编译器的旧版运行时库,用于支持在Windows系统上使用Visual C++编译的程序。它提供了许多标准C库函数和C++运行时函数的实现,用于支持程序的运行和调试。MSVCRT通常与早期的Visual C++版本(如Visual Studio 2010及更早版本)相关联。
  • ucrt:UCRT是自Windows 10起引入的新一代运行时库,旨在提供更好的兼容性和性能。UCRT是一个通用的C运行时库,用于支持使用C语言编译的程序,而不仅仅是限于Visual C++编译器。它提供了对标准C库函数的更新实现,并支持一些新的C标准(如C11标准)。UCRT与较新版本的Visual C++(如Visual Studio 2015及更新版本)相关联。

UCRT更新推荐开发使用,如果考虑兼容则用MSVCRT。

Windows10 则下载的是:x86_64-14.2.0-release-win32-seh-ucrt-rt_v12-rev2.7z

配置环境变量

  1. mingw64解压的一个指定位置,例如D:\dev\rust
  2. 配置系统环境变量(按win键直接搜索系统环境变量打开即可),在path环境变量中新增一条,将D:\dev\rust配置进去,然后一路确定。
  3. cmdwin+R输入cmd后回车,或搜索命令提示符打开)输入命令gcc --version回车,若能看到版本信息,则表示配置成功。

Rust环境准备

配置环境变量

rust默认会安装到C盘用户目录下的.cargo文件下:%USERPROFILE%/.cargo,可以通过环境变量指定安装位置。假设安装位置也为D:\dev\rust

  • cargo:编辑系统环境变量,新建一条变量名为CARGO_HOME,值为D:\dev\rust\.cargo的系统环境变量。
  • rustup:编辑系统环境变量,新建一条变量名为RUSTUP_HOME,值为D:\dev\rust\.rustup的系统环境变量。
  • 在系统环境变量的path变量中新增一条,值为%CARGO_HOME%\bin

下载rust

官网下载地址:https://rust.p2hp.com/tools/install
选择好合适的版本并下载好后,双击exe文件打开。

  1. 选择使用自己准备的编译环境,输入2回车。
    在这里插入图片描述

  2. 接着输入y回车,然后选择自定义安装,输入2回车
    在这里插入图片描述

  3. 安装工具链:Rust默认的工具链是:x86_64-pc-windows-msvc。由于我们使用的编译环境是mingw64,所以需要使用这个x86_64-pc-windows-gnu,输入它回车。
    在这里插入图片描述

  4. 然后回车两次,在是否修改环境变量那输入n回车,这样才会使用我们自己配置的环境变量安装rust。
    在这里插入图片描述

  5. 接下来一路回车即可,等待安装完成后可以看到安装路径,如下。
    在这里插入图片描述

  6. 打开cmd输入rustup --verionrustc --version回车,如果看到输出了版本信息,则表示安装成功。

  7. 根据需要修改cargo镜像,如果下载速度慢的话,可以在CARGO_HOME指定的目录下创建一个config.toml文件,配置内容如下:

[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"# 具体使用的源
replace-with = 'aliyun'### 配置多个源地址
# rsproxy
[source.rsproxy]
registry = "https://rsproxy.cn/crates.io-index"
[source.rsproxy-sparse]
registry = "sparse+https://rsproxy.cn/index"
[registries.rsproxy]
index = "https://rsproxy.cn/crates.io-index"# 阿里源
[source.aliyun]
registry = "sparse+https://mirrors.aliyun.com/crates.io-index/" # 清华大学
[source.tuna]
registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"# 中国科学技术大学
[source.ustc]
registry = "https://mirrors.ustc.edu.cn/crates.io-index/"# 上海交通大学
[source.sjtu]
registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"# rustcc社区
[source.rustcc]
registry = "https://code.aliyun.com/rustcc/crates.io-index.git"[net]
git-fetch-with-cli=true

补充

包查询地址

推荐两个rust包的查询地址:

  1. https://crates.io/
  2. https://lib.rs/search

x86_64-pc-windows-gnu

x86_64-pc-windows-gnux86_64-pc-windows-msvc 是 Rust 在 Windows 平台上的两种 目标三元组(target triple),分别对应不同的底层工具链和运行时行为。它们的核心区别在于 使用的 C 运行时库(CRT)和链接器,进而影响编译、链接和程序运行时的特性。以下是详细对比:

特性x86_64-pc-windows-gnux86_64-pc-windows-msvc
C 运行时库(CRT)使用 MinGW-w64 提供的 GNU CRT(如 msvcrt.dllucrt.dll使用 Microsoft Visual C++(MSVC) 提供的 CRT(如 msvcr120.dll
链接器GNU ld(来自 MinGW-w64)Microsoft link.exe(来自 MSVC 工具链)
调试符号格式DWARF(GNU 标准)PDB(Microsoft 专有格式)
异常处理机制基于 SEH(Structured Exception Handling) 的兼容实现(MinGW 的变种)原生 SEH(Windows 官方机制)
线程模型通常使用 POSIX 线程(pthread) 的兼容层原生 Windows 线程(Win32 API)

运行rust

这里用vscode举例。

  1. vscode中安装好插件rust-analyzer(其他相同作用的rust插件也行)。
  2. 创建rust项目:cmd输入cargo new 项目名即可创建一个rust项目,然后通过vscode打开创建好的项目,这时插件会自动对项目进行编译。
  3. 打开main.rs文件,点击图中标注的Run即可运行项目。
    在这里插入图片描述

如果运行失败,出现下图的情况,则需要在之前配置的config.toml文件中加上如下内容:

[target.x86_64-pc-windows-gnu]
linker = "D:/dev/rust/mingw64/bin/x86_64-w64-mingw32-gcc.exe"

在这里插入图片描述

http://www.dtcms.com/a/520777.html

相关文章:

  • 图神经网络分享系列-GAT(GRAPH ATTENTION NETWORKS) (一)
  • C语言:整数转字符串(递归实现)
  • fpga芯片挂在线成功,但是固化程序失败的可能原因有哪些?
  • HarmonyOs鸿蒙开发,学生信息管理
  • Android实战进阶 - 单点登录与系统拦截
  • 简要说明网站建设的步骤最权威的做网站优化价格
  • 环境设计网站推荐北京战略咨询公司
  • golang学习笔记:标准库sort
  • VVIC 关键字搜索接口开发:快时尚场景下的智能分词与爆款优先排序实现
  • 数据结构——平衡二叉树
  • 基于Qt实现百度地图路径规划功能
  • 电力电子技术 第六章——磁元件模型
  • Qt+Qml客户端和Python服务端的网络通信原型
  • 个人音乐类网站服务器租借汉滨网站建设
  • Python“魔术方法”详解:self 与 other 的角色与交互
  • 每日SQL练习 -- 24年阿里(医院门诊复诊率与抗生素用药占比统计)
  • Vue项目中资源引入方式详解
  • 单页网站设计欣赏沪深300指数
  • 跨境一件代发平台温州seo关键词优化
  • mvc5网站开发网站长尾关键词排名软件
  • 阿里云渠道商:如何建立阿里云的权限模型?
  • 网站开发 只要凡科精选app
  • 玉溪市网站建设推广移动通信网站建设
  • 《算法通关指南之C++编程篇(5)----- 条件判断与循环(下)》
  • DarkZero
  • python 网站开发怎么部署龙岩有什么招聘本地网站
  • 上海兼职做网站淘宝友情链接怎么设置
  • 【Linux系统编程】程序替换:execve(execl、execlp、execle、execv、execvp、execvpe)
  • 西安市城乡房地产建设管理局网站wordpress国外主题修改
  • 巨鹿网站建设网络公司云南住房和建设厅网站