Window 11中安装Rust编译环境和集成开发环境

news2024/11/22 15:24:47

https://blog.csdn.net/weixin_43882409/article/details/87616268是我参考的一篇文章。

下载

先到https://www.rust-lang.org/learn/get-started,下载64-Bit(64位)的rustup-init.exe文件。
在这里插入图片描述
使用其他方式进行安装的网址https://forge.rust-lang.org/infra/other-installation-methods.html

设置环境变量

到“我的电脑”里边,在任意空白处点击鼠标右键,然后点击属性。
在这里插入图片描述

在窗口中间处选择“高级系统设置”。

在这里插入图片描述

然后点击“环境变量”。
在这里插入图片描述

设置CARGO_HOME和RUSTUP_HOME。

点击系统变量中的新建按钮。
在这里插入图片描述

CARGO_HOME作为变量名,变量值改为合适的文件夹,点击确定。
在这里插入图片描述

点击系统变量中的新建按钮。
在这里插入图片描述

RUSTUP_HOME作为变量名,变量值改为合适的文件夹,点击确定。

在这里插入图片描述

然后到下载目录下打开命令行,之后输入rustup-init.exe
先是输入2,选择自定义安装。
之后输入x86_64-pc-windows-gnu选择编译器。
输入stable选择稳定版本安装。
输入complete选择完全版本安装。
输入n选择不变更环境变量,等一下自己手动填写环境变量。
输入1开始安装。
在这里插入图片描述在这里插入图片描述在这里插入图片描述

安装完成显示如下:
在这里插入图片描述

设置gcc和cargo环境变量

我通过https://github.com/niXman/mingw-builds-binaries/releases这个地方下载了gcc编译器,我下载的是x86_64-12.2.0-release-win32-seh-ucrt-rt_v10-rev2.7z
在这里插入图片描述
因为github.com在国外,试了好几下,下载着下载着就无法连接了,最后还是下载成功了。x86_64-12.2.0-release-win32-seh-ucrt-rt_v10-rev2.7z解压到D:\Gcc120200目录下。
在这里插入图片描述

选择变量为“Path”,鼠标左键双击两下。
在这里插入图片描述
点击新建。
在这里插入图片描述把gcc的bin目录填写进去,这里需要你自己电脑上的正确目录。
在这里插入图片描述
再次点击新建,把Cargo安装文件夹填上去。
在这里插入图片描述

编辑环境变量窗口上点击确定。
在这里插入图片描述
系统属性窗口点击“确定”
在这里插入图片描述

接下来修改Rust Crates 源。
CARGO_HOME目录下(我这里是D:\rustcargo),要是没有config文件的话,需要新建一个。
在这里插入图片描述

[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"
# 指定镜像
replace-with = 'ustc' # 如:tuna、ustc,或者 rustcc 指定一个即可

# 中国科学技术大学
[source.ustc]
registry = "https://mirrors.ustc.edu.cn/crates.io-index"

# 清华大学
[source.tuna]
registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git" 

# rustcc社区
[source.rustcc]
registry = "https://code.aliyun.com/rustcc/crates.io-index.git"


# 字节跳动
[source.rsproxy]
registry = "https://rsproxy.cn/crates.io-index"

写到config文件里。

在这里插入图片描述

在命令里边执行cargo new hellorust创建一个二进制项目。
在这里插入图片描述
在创建的hellorust目录下中,将

[package]
name = "hellorust"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
reqwest = { version = "0.11",features = ["blocking"]}
html2md = "0.2"

写到Cargo.toml文件中。
在这里插入图片描述

然后将

use std::fs;
use std::path::PathBuf;
fn main() {
  let url = "https://www.baidu.com/";
  let output = "baidu.md";

  println!("获取到的地址: {}", url);
  let body = reqwest::blocking::get(url).unwrap().text().unwrap();

  println!("正在转换中");
  let md = html2md::parse_html(&body);
  fs::write(output, md.as_bytes()).unwrap();
  let mut config_path = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
  config_path.push(output);
  println!("md放到的位置:{:?}",config_path);
}

写到hellorust\src文件夹下的main.rs文件里。
在这里插入图片描述

然后进入到hellorust目录下,打开cmd,执行cargo run
在这里插入图片描述

执行结果如下:
在这里插入图片描述

完成安装和环境测试。

Visual Studio Code配置Rust开发环境和测试环境

https://code.visualstudio.com/docs/languages/rust是我参考的官方文档。
进行调试的代码如下:

fn main() {
  let hello:&str = "baidu.md";
  println!("{}",hello);
  let good:&str = "baidu.md1";
  println!("{}",good);
}

先点击左侧最下边的选项,然后再出现的输入框里边输入“rust-analyzer”,点击“Install”。
在这里插入图片描述

完成之后如下:
在这里插入图片描述

再次输入代码就有提示了。
在这里插入图片描述

需要安装Microsoft C++
在这里插入图片描述

安装完成如下图:
在这里插入图片描述
下载的插件:
在这里插入图片描述
工作目录下

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [ 
        {
            "name": "Debug",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/target/debug/hellorust.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceRoot}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "D:/Gcc120200/mingw64/bin/gdb.exe",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "Set Disassembly Flavor to Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

在这里插入图片描述

我遇到的问题通过看VS code调试时显示Unable to start debugging.The value of miDebuggerPath is invalid 这篇参考文章解决了。

先打上断点,按照下图,选择对应的位置点击,可以进行调试了。
在这里插入图片描述

此文章为11月Day 7学习笔记,内容来源于极客时间《Rust 语言从入门到实战》。

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

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

相关文章

视频特效编辑软件 After Effects 2022 mac中文版介绍 (ae 2022)

After Effects 2022 mac是一款视频特效编辑软件,被称为AE,拥有强大的特效工具,旋转,用于2D和3D合成、动画制作和视觉特效等,效果创建电影级影片字幕、片头和过渡,是一款可以帮助您高效且精确地创建无数种引…

初识面向对象(类和对象)

目录 1. 面向对象的初步认知 2.面向对象与面向过程 3.类定义和使用 4.类的定义格式 练习 5.类的实例化 什么是实例化 6.this引用 为什么要有this引用 什么是this引用 this引用的特性 7.对象的初始化 默认初始化 就地初始化 使用构造方法初始化 1. 面向对象的初步…

大数据毕业设计选题推荐-营业厅营业效能监控平台-Hadoop-Spark-Hive

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

Logstash与FileBeat详解以及ELK整合详解

背景 日志管理的挑战: 关注点很多,任何一个点都有可能引起问题日志分散在很多机器,出了问题时,才发现日志被删了很多运维人员是消防员,哪里有问题去哪里 集中化日志管理思路: 日志收集》格式化分析》检索…

一种以RGB颜色登录的密码实现

当用户点击了某些密码之后,就可以登录成功,主要用于安全码,辅助安全手段。 颜色密码虽然不方便用键盘输入,只能用鼠标点击,但是容易记忆,也不容易被黑客攻陷。

PC9502双节锂电池充电管理芯片高精度外围元件少SOP8封装

■ 产品概述 PC9502 系列是一款双节锂电池充电管理芯片。 该芯片 包含了充电状态检测、充电过程、温度检测等,内部还集成 一个高精度的基准电压模块,此芯片采用 SOP-8 封装。 PC9502 充电包含三种模式:预充电,恒流充电&#x…

【REST API】什么是REST API?

参考: 什么是 REST API 一文读懂 (RESTful API)_哔哩哔哩_bilibili -------------------------------------------------------------------------------------------------------------------------------- REST API,又被称作RESTful API&#xff0c…

国内私募机构出海或成趋势?| A+CLUB深圳沙龙圆桌论坛

上篇国君国际、华锐技术、亚马逊云科技和彭博的四位专家对私募出海涉及到的业务和技术领域做了专业分享,本篇将为大家带来干货满满的圆桌论坛内容。此次圆桌由华锐技术机构业务总监-葛云娟主持,国君国际跨境业务销售主管-毛哲、清华大学教授-林健武、衍盛…

微服务之Nacos配置管理

文章目录 一、统一配置管理Nacos操作二、统一配置管理java操作1.引入依赖2.创建配置文件3.测试4.总结 三、Nacos配置自动更新1.添加注解RefreshScope2.使用ConfigurationProperties注解3.总结 四、Nacos多环境配置共享1.配置文件2.多种配置的优先级3.总结 一、统一配置管理Naco…

Spire.Office for .NET 8.10.2 同步更新-Crk

Spire.Office for .NET是 E-iceblue 提供的企业级 Office .NET API 的组合。它包括Spire.Doc、Spire.XLS、Spire.Spreadsheet、Spire.Presentation、Spire.PDF、Spire.DataExport、Spire.OfficeViewer、Spire.PDFViewer、Spire.DocViewer、Spire.Barcode和Spire.Email。Spire.O…

二.831(KMP)字符串详解

ne[3]枚举2次 ne[4],枚举3次 ne[5],枚举4次]b在后面了,就一个b就不可能在前面了]b舍弃 ne[6],枚举i-1次]一眼看最长相等前后缀,就是aab,aab ne[7],aaba,aaba ne[8],枚举i-1次]aabaa,aabaa 同理 怎么快速看呢!我想把b给夹起来]把中间夹的数越多就多 其实 加的有规律,最…

移动硬盘无法识别怎么办?有哪些免费的读写硬盘工具

在日常生活中,我们都习惯于把移动硬盘作为常用的存储介质,用来储存一些文档资料。那么,如果遇上硬盘无法读取的问题,我们又该如何是好呢? 其实硬盘无法读取的问题还是比较常见的,通常有以下几种处理方法&a…

QT 实现两款自定义的温度计/湿度控件

文章目录 0 引入1、带有标尺的温度/湿度计控件1.头文件2.核心代码 2、竖起来的温度/湿度计控件1.头文件2.实现 3、引用 0 引入 QT原生控件没有实现如仪表盘或者温度计的控件,只好自己实现,文章代码部分参考引用的文章。直接上图 图一 带有标尺的温度计…

unity打AB包,AssetBundle预制体与图集(二)

第二步:加载AB包的资源,用于显示 using System.Collections; using System.Collections.Generic; using System.IO; using UnityEngine; using UnityEngine.Networking; using UnityEngine.U2D; using UnityEngine.UI;public class GameLaunch : MonoBe…

B - Little Tiger vs. Deep Monkey

思路: (1)条件:n道单选题,分值不一定相同,选对或者错,A,B分别做题,得分多者胜; (2)问题:A至少做对几道题才能保证获胜概率达到50%&a…

web前端js基础------制作滚动图片

1,要求 通过定时器使其出现滚动的效果 可以通过按键控制图片滚动的方向(设置两个按钮绑定点击事件) 当鼠标悬停时图片停止,鼠标离开时图片继续向前滚动(可以设置鼠标的悬停和离开事件) 参考如下 conten…

【后端速成 Vue】初识指令(下)

前言: 上一篇初识指令(上)文章中,一共讲解了 v-html,v-show,v-if,v-else,v-else-if,v-on,v-bind 这些指令,当然,还剩不少的指令没有讲解,本问将会…

DBeaver Ultimate forMac/Win中文版:掌控数据宇宙的强大工具

在当今的数字化世界中,数据库管理软件在企业和个人的数据处理中扮演着至关重要的角色。在这篇文章中,我们将介绍一款备受赞誉的数据库管理软件——DBeaver Ultimate,它被广泛应用于各种行业和场景,帮助用户高效地管理和利用他们的…

“Redis与Spring整合及缓存优化“

文章目录 引言1. Spring整合Redis1.1. 为什么选择Redis作为缓存解决方案?Redis的特点和优势Redis与传统关系数据库的对比 1.2. Spring与Redis整合的基本步骤 2. Redis注解式缓存2.1. Spring提供的缓存注解介绍2.2. 使用注解实现方法级别的缓存 3. Redis的击穿、穿透…

系统有同类资源m个,供n个进程共享,若每个进程对资源的最大需求量为k,试问:当m,n,k的值分别为下列情况时(见下表),是否会发生死锁?

一.系统有同类资源m个,供n个进程共享,若每个进程对资源的最大需求量为k,试问:当m,n,k的值分别为下列情况时(见下表),是否会发生死锁? (1)m6;n3;k3 &#xf…