搭建Windows下的Rust开发环境
【图书介绍】《Rust编程与项目实战》-CSDN博客
《Rust编程与项目实战》(朱文伟,李建英)【摘要 书评 试读】- 京东图书 (jd.com)
Rust编程与项目实战_夏天又到了的博客-CSDN博客
2.1.1 安装vs_buildtools
在Windows系列操作系统中,Rust开发环境需要依赖C/C++编译环境,因此需要先安装C/C++工具vs_buildtools。步骤如下。
首先安装vs_buildtools工具。打开浏览器,访问https://visualstudio.microsoft.com/zh-hans/ visual-cpp-build-tools/,单击“下载生成工具”按钮,如图2-1所示。
图2‑1
Microsoft C++生成工具通过可编写脚本的独立安装程序提供MSVC工具集,无须使用Visual Studio。如果从命令行界面(例如持续集成工作流中)生成面向 Windows 的 C++ 库和应用程序,则推荐使用此工具,Visual Studio 2015 Update 3、Visual Studio 2017、Visual Studio 2019和最新版本的Visual Studio 2022中提供这个工具。
下载下来的文件是vs_BuildTools.exe,如果不想下载,也可以在源码目录的 somesofts文件夹下找到vs_BuildTools.exe。双击下载的vs_BuildTools.exe文件,按照提示默认安装,在最后选择安装组件时按图2-2进行选择。
图2‑2
然后单击右下角的“安装”按钮开始安装,如图2-3所示。
图2‑3
一直到安装结束,这样,我们就完成了vs_BuildTools工具的安装。
2.1.2 安装Rust相关工具
打开浏览器,访问https://www.rust-lang.org/zh-CN/tools/install,根据当前操作系统的环境(目前主流操作系统一般都是64位操作系统),单击“下载RUSTUP-INIT.EXT(64位)”按钮下载Rust安装工具。下载下来的文件是rustup-init.exe,如果不想下载,也可以在somesofts文件夹下找到。
下面准备开始安装,打开我的电脑,进入rustup-init.exe所在的目录,然后在资源管理器地址栏输入cmd后按Enter键,此时会打开命令行窗口,并自动定位到rustup-init.exe所在的目录,如图2-4所示。
然后在命令行窗口执行以下命令:
set RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
set RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
设置这些环境变量的目的是让Rust安装包使用国内Rust镜像库安装,以提高相关Rust软件包的下载速度。之后直接在命令行下执行rustup-init.exe,选择一项(default)后按Enter键开始安装,如图2-5所示。
如果一切顺利(不顺利可能是因为你的网络不稳定),最终会出现安装成功的提示,如图2-6所示。
图2‑6
安装成功后,就可以验证相关工具是否处于可用状态。比如我们可以通过选项-V来查看版本。关闭当前命令行窗口,再重新打开命令行窗口,然后执行以下两个命令:
C:\Users\Administrator>cargo -Vcargo 1.72.1 (103a7ff2e 2023-08-15)C:\Users\Administrator>rustc -Vrustc 1.72.1 (d5c2e9c34 2023-09-13)
其中,cargo是Rust的工程包管理工具。如果每条命令的输出都是你安装的Rust版本号,说明该工具安装成功。
2.1.3 第一个Rust项目
本节我们趁热打铁,开始编写第一个Rust项目。这个项目纯手工打造,没有用到集成开发环境。
【例2.1】 第一个Rust项目
新建项目。打开命令行窗口,在硬盘的某个路径(这里是D:\ex\)下执行命令:
D:\ex>cargo new firstrust
Cargo是Rust的工程管理工具,使用Cargo创建项目后,将在D:\ex下自动新建一个文件夹firstrust,并且在firstrust下生成文件夹和文件,如图2-7所示。
其中,文件.gitignore用于版本管理工具Git,现在我们没有用Git工具,所以不需要理会这个文件。文件Cargo.toml 是工具Cargo 的元配置文件,里边包含项目名称、版本号等内容,该文件从用户的角度出发来描述项目信息和依赖管理,因此它是由用户来编写的,它又被称为清单(manifest),文件格式是TOML(Tom's Obvious Minimal Language),这是一种用于配置文件的文件格式,它被设计为易于读写,并且在结构上类似于INI文件。文件夹src下也会生成一个文件main.rs,这个.rs文件就是Rust语言的源代码文件,此时里面已经有内容了:
fn main() {println!("Hello, world!");}
是不是感觉有点像C语言,有C编程基础的读者一看便知,这个main函数将打印一行字符串“Hello, world!”。这里的main函数也是整个Rust项目的入口函数。
编译运行程序。在命令行下进入目录D:\ex\firstrust,然后执行命令:
D:\ex\firstrust>cargo runCompiling firstrust v0.1.0 (D:\ex\firstrust)Finished dev [unoptimized + debuginfo] target(s) in 6.73sRunning `target\debug\firstrust.exe`Hello, world!
可以看到,编译成功,并且运行成功了,最终打印了字符串“Hello, world!”。如果有兴趣,还可以用文本编辑器(比如记事本)打开main.rs,然后改变一下字符串,再编译运行,看看运行结果是否发生了变化。
此时我们到文件夹firstrust下查看,可以发现多出了文件Cargo.lock和文件夹target,它们是编译过程中自动生成的。其中,文件Cargo.lock也是工具Cargo的元配置文件,它包含依赖的精确描述信息,它是由Cargo自行维护的,因此不需要手动修改。文件夹D:\ex\firstrust\target\debug下包含可执行文件firstrust.exe,直接双击它就可以运行。
至此,Rust相关工具的安装工作就完成了。但这个开发环境比较简陋,下面我们搭建集成开发环境来开发Rust程序。
2.1.4 VS Code搭建Rust开发环境
尽管我们可以采用文本编辑器完成Rust源码编辑,然后通过Cargo运行、调试Rust程序,这对于学习Rust语言足够了。但是在实际应用开发工程中,很少有人采用各种原始的生产方式,毕竟效率实在是太低了。所以一般在应用开发过程中,为了提升生产效率,开发人员都会采用集成开发环境(Integration Development Environment,IDE)开展实际生产开发工作。Rust官方没有提供IDE,我们完全可以采用VS Code + 插件的方式搭建一个轻量级的IDE。
打开浏览器访问https://code.visualstudio.com/Download,然后根据操作系统平台(目前流行的操作系统一般是64位),单击System Installer旁的x64链接,以此来下载64位的安装包,如图2-8所示。
下载下来的文件是VSCodeSetup-x64-1.76.1.exe,如果不想下载,也可以在本书配套源码somesofts文件夹下找到。安装过程非常简单,这里不再赘述。
VS Code刚装好只是一个编辑器,很多功能都需要安装插件才能拥有,下面我们准备安装3个插件:Code Runner、rust-analyzer和CodeLLDB。
打开VS Code,单击左侧的Extensions工具按钮,或者直接按快捷键Ctrl+Shift+X,如图2-9所示。
在Search Extensions in Marketplace...输入框中输入Code Runner后按Enter键,此时将搜索到Code Runner这个插件,单击Install按钮就可以开始安装了,如图2-10所示。
Code Runner是Jun Han编写的一款VS Code代码运行插件,可以运行多种语言的代码片段或代码文件,比如C、C++、Java、Objective-C、Rust等。此插件安装成功后,会在VS Code的右上角出现一个三角形按钮,如图2-11所示。以后要运行程序时,直接单击这个三角形按钮即可。
再搜索下一个插件rust-analyzer,在Search Extensions in Marketplace...输入框中输入rust-analyzer,然后按Enter键,等搜出来后,单击install按钮。rust-analyzer会实时编译和分析你的 Rust 代码,提示代码中的错误,并对类型进行标注,还可以实现自动补全、语法高亮等功能。
还要安装插件CodeLLDB,CodeLLDB的作用是Debug。在Search Extensions in Marketplace...输入框中输入CodeLLDB,然后按Enter键,等搜出来后,单击Install按钮开始安装。如果在线安装比较慢,我们也可以先把整个插件安装包下载下来,然后离线安装。下载地址如下:
https://github.com/vadimcn/codelldb/releases/download/v1.9.0/codelldb-x86_64-windows.vsix
下载下来的文件是codelldb-x86_64-windows.vsix,如果不想下载,也可以在somesofts文件夹下找到,然后打开VS Code,单击左侧工具栏上的Extensions按钮,然后把文件codelldb-x86_64-windows.vsix拖入VS Code的Extensions页下的空白处,稍等片刻,VS Code右下角会提示安装完成。最后重新启动VS Code,安装的插件就能起作用了。
相关文章:

搭建Windows下的Rust开发环境
【图书介绍】《Rust编程与项目实战》-CSDN博客 《Rust编程与项目实战》(朱文伟,李建英)【摘要 书评 试读】- 京东图书 (jd.com) Rust编程与项目实战_夏天又到了的博客-CSDN博客 2.1.1 安装vs_buildtools 在Windows系列操作系统中,Rust开发环境需要依…...

[linux 驱动]misc设备驱动详解与实战
目录 1 描述 2 结构体 2.1 miscdevice 2.2 file_operations 3 注册和注销 3.1 misc_register 3.2 misc_deregister 4 解析 misc 内核源码 4.1 核心代码 4.2 函数解析 4.2.1 class_create_file 4.2.2 class_destroy 4.2.3 register_chrdev 5 示例 5.1 简单示例 5…...

C/S架构与B/S架构的适用场景分析
C/S架构(客户端/服务器架构)与B/S架构(浏览器/服务器架构)在适用场景上各有特点,主要取决于应用的具体需求、用户群体、系统维护成本、跨平台需求等因素。 一、C/S架构的适用场景 1、高性能与交互性要求高的应用&…...

AI论文精读笔记-Generative Adversarial Nets(GAN)
1. 论文基本信息 论文标题:Generative Adversarial Nets 作者:Ian J. Goodfellow,∗ Jean Pouget-Abadie,† Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair,‡ Aaron Courville, Yoshua Bengio 发表时间和期刊:2014.06…...

Redis(主从复制、哨兵模式、集群)概述及部署测试
目录 一、Redis 主从复制 1.1、Redis 主从复制概念 1.2、主从复制的作用 1.3、主从复制流程 1.4、搭建Redis 主从复制 二、Redis 哨兵模式 2.1、Redis 哨兵模式概念 2.2、哨兵模式原理 2.3、哨兵模式的作用 2.4、哨兵模式的结构 2.5、故障转移机制 2.6、主节点的选…...

jmeter吞吐量控制器
一、吞吐量控制器作用:旨在混合场景中,控制样本数,通常在比例场景中使用 吞吐量控制器提供了两种控制模式: 百分比执行(Percent Executions): 吞吐量控制器会根据配置的百分比来决定其下的作用…...

【GBase 8c V5_3.0.0 分布式数据库常用几个SQL】
1.检查应用连接数 以管理员用户 gbase,登录数据库主节点。 接数据库,并执行如下 SQL 语句查看连接数。 SELECT count(*) FROM (SELECT pg_stat_get_backend_idset() AS backendid) AS s;2.查看空闲连接 查看空闲(state 字段为”idle”)且长时间没有更…...

grep,wc命令
一.grep命令 1.grep命令的作用 我们通过grep命令从文件中通过关键字过滤文件行 2.grep命令的语法 grep [-n] 关键字 文件路径 其中grep作为命令主体 -n选项表示在结果中显示匹配的行的行号 关键字为必填参数,表示过滤的关键字(可以使用""…...

NLP-文本分类文献阅读-前置基础-词汇解释-通俗易懂-9月份-学习总结
目录 迁移学习 特征选择 特征工程 朴素贝叶斯分类方法 支持向量机 K-最近邻(K-Nearest Neighbors, KNN) 特征向量稀疏 卷积神经网络 循环神经网络 图神经网络 TextCNN 动态 K 最大池化 One-hot BOW Word2vec 池化(Pooling) 全连接…...

Conda安装和使用(ubuntu)
以下是关于如何使用 Conda 的详细指南。这将涵盖从安装到基本操作的各个方面,帮助您高效地管理Python环境和依赖项。 Conda 简介 Conda 是一个跨平台的开源包管理器和环境管理器,最初由 Anaconda 开发,广泛用于数据科学、机器学习和科学计算…...

JavaEE:文件操作
文章目录 文件操作和IO文件系统操作File介绍属性构造方法方法 代码演示前四个listmkdirrenameTo 文件操作和IO 文件系统操作 创建文件,删除文件,创建目录,重命名… Java中有一个类,可以帮我们完成上述操作. 这个类叫做File类. File介绍 属性 这个表格描述了文件路径的分隔符…...

Python | 练习作业 2
为学生登录系统新增搜索功能。 第二天作业的解题思路: # 1.创建一个空列表保存搜索结果 # 2.让用户输入要搜索的内容 # 3.遍历学生信息,检查学生的id name age gender score # 中的属性值 是否跟用户搜索的内容一致 # 4.如果有一致的属性 那么就将该学生…...

C语言-整数和浮点数在内存中的存储-详解-上
C语言-整数和浮点数在内存中的存储-详解-上 1.前言2.整数2.1无符号整数2.2原码、反码、补码符号位最大值转换过程补码的意义简化算术运算易于转换方便溢出处理 1.前言 在C语言的使用中,需要时刻关注数据的类型,不同类型交替使用可能会发生错误ÿ…...

图论篇--代码随想录算法训练营第六十一天打卡| Floyd 算法,A*算法
Floyd 算法(求多源汇最短路) 题目链接:97. 小明逛公园 题目描述: 小明喜欢去公园散步,公园内布置了许多的景点,相互之间通过小路连接,小明希望在观看景点的同时,能够节省体力&…...

CMake构建学习笔记16-使用VS进行CMake项目的开发
文章目录 1. 概论2. 详论2.1 创建工程2.2 加载工程2.3 配置文件2.4 工程配置2.5 调试执行 3. 项目案例4. 总结 1. 概论 在之前的系列博文中,我们学习了如何构建第三方的依赖库,也学习了如何去组建自己的CMake项目,尤其是学习了CMake的核心配…...

数据结构中线性表的定义和特点
线性表:有n个数据特征相同的元素构成的有限序列。 特点: 除了第一个元素,最后一个元素,其余的元素都有唯一的前驱和唯一的后继。 案例引入: 一元多项式的运算: 可以将一元多项式p(x)抽象为一个有n1个系…...

【PyTorch单点知识】PyTorch中的自动混合精度(AMP)模块详解
文章目录 0. 前言1. 什么是自动混合精度?2. PyTorch AMP 模块3. 如何使用 PyTorch AMP3.1 环境准备3.2 代码实例3.3 代码解析 4. 结论 0. 前言 按照国际惯例,首先声明:本文只是我自己学习的理解,虽然参考了他人的宝贵见解及成果&a…...

数据结构 --- 哈希表
哈希表(Hash Table),也叫散列表,是一种根据关键码值(Key value)而直接进行访问的数据结构。 一、基本原理 哈希函数 哈希表通过一个特定的哈希函数,将关键码映射到表中的一个位置。这个位置通常…...

Linux相关:在阿里云下载centos系统镜像
文章目录 1、镜像站2、下载方式一2.1、第一步打开镜像站地址2.2 下载地址: https://mirrors.aliyun.com/centos/2.3、选择7版本2.4、镜像文件在isos文件夹中2.5、选择合适的版本 3、下载镜像快捷方式 1、镜像站 阿里云镜像站地址 2、下载方式一 2.1、第一步打开镜像站地址 2…...

24. 线模型对象
线模型Line渲染顶点数据 下面代码是把几何体作为线模型Line (opens new window)的参数,你会发现渲染效果是从第一个点开始到最后一个点,依次连成线。 // 线材质对象 const material new THREE.LineBasicMaterial({color: 0xff0000 //线条颜色 }); //…...

EasyExcel 快速入门
目录 一、 EasyExcel简介 官网链接: 代码链接: 二、 EasyExcel快速上手 引入依赖: 设置Excel相关注解 编写对应的监听类: 简单写入数据: 简单读取数据: 不需要使用监听器: 需要使…...

Sparse4D v1
Sparse4D: Multi-view 3D Object Detection with Sparse Spatial-Temporal Fusion Abstract 基于鸟瞰图 (BEV) 的方法最近在多视图 3D 检测任务方面取得了重大进展。与基于 BEV 的方法相比,基于稀疏的方法在性能上落后,但仍然有很多不可忽略的优点。为了…...

速盾:你知道高防 IP 和高防 CDN 的区别吗?
在当今网络安全形势日益严峻的情况下,网站的安全防护成为了企业和个人关注的焦点。高防 IP 和高防 CDN 作为两种常见的网络安全防护手段,被广泛应用于网站的安全防护中。那么,高防 IP 和高防 CDN 有什么区别呢?防护网站哪个更好呢…...

HTML和CSS网页制作成品
HTML和CSS网页制作成品 一、引言 1. 背景介绍 在当今数字化时代,网页已成为信息传递和交流的重要媒介。HTML和CSS作为网页制作的基石,对于构建美观、功能丰富的网站至关重要。本文将详细介绍如何使用HTML和CSS来制作一个网页成品。 2. 目的和重要性 …...

Ai+若依(集成easyexcel实现excel表格增强)
EasyExcel 介绍 官方地址:EasyExcel官方文档 - 基于Java的Excel处理工具 | Easy Excel 官网 Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一…...

钻机、塔吊等大型工程设备,如何远程维护、实时采集运行数据?
在建筑和工程领域,重型设备的应用不可或缺,无论是在道路与桥梁建设、高层建筑施工,还是在风电、石油等能源项目的开发中,都会用到塔吊、钻机等大型机械工程设备。 随着数字化升级、工业4.0成为行业发展趋势,为了进一步…...

【AutoX.js】选择器 UiSelector - 查找包名
文章目录 原文:https://blog.c12th.cn/archives/38.html选择器 UiSelector - 查找包名笔记直接查找包名双层判断(推荐)查找最外层控件的子控件 最后 原文:https://blog.c12th.cn/archives/38.html 选择器 UiSelector - 查找包名 笔记 AutoX.js UiSelec…...

ERP进销存多仓库管理系统源码 带完整的安装代码包以及搭建部署教程
系统概述 ERP进销存多仓库管理系统是一款专为中小企业量身定制的集成化管理软件,它集成了采购管理、销售管理、库存管理、财务管理以及多仓库协同作业等核心模块。通过统一的平台,企业可以实时掌握商品从入库到出库的全过程,实现库存的自动化…...

数据清洗-缺失值填充-对XGBoost参数优化填充
目录 一、安装所需的python包二、采用XGboost算法进行缺失值填充2.1可直接运行代码2.2以某个缺失值数据进行实战2.2.1 代码运行过程截屏:2.2.2 填充后的数据截屏:三、网格搜索(Grid Search)对 XGBoost 模型的超参数进行优化原理介绍3.1 说明3.2 参数优化的原理1. 网格搜索(…...

Qt_按钮类控件
目录 1、QAbstractButton 2、设置带图标的按钮 3、设置带有快捷键的按钮 4、QRadioButtion(单选按钮) 4.1 QButtonGroup 5、QCheckBox 结语 前言: 按钮类控件是Qt中最重要的控件类型之一,该类型的控件可以通过鼠标的点击…...