搭建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,安装的插件就能起作用了。

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

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

相关文章

归并排序(Merge Sort)

什么是归并排序 归并排序(Merge Sort)是一种经典的排序算法,它采用分治法(Divide and Conquer)策略,将一个大数组分为两个小数组,分别进行排序,然后将这两个已排序的小数组合并成一个…

RealSense L515相机使用踩坑记录

Realsense Viewer以及ROS驱动安装 要想通过ROS驱动Realsense系列产品,需要首先安装Realsense Viewer以及对应版本的realsense-ros驱动。 Realsense Viewer安装 Realsense Viewer的安装参考文章Linex Ubuntu环境下 Intel Realsense D435I 驱动ROS驱动安装配置 安…

docker进入容器运行命令

Docker容器的基本操作 在深入讨论如何进入容器并运行命令之前,让我们先回顾一下Docker容器的一些基本操作: 列出容器:使用docker ps命令列出当前正在运行的容器。如果你还想看到已经停止的容器,可以添加-a或--all选项。 启动容器…

音视频开发常见的开源项目汇总

FFmpeg 地址:https://ffmpeg.org/介绍:FFmpeg 是一个非常强大的开源多媒体框架,它可以用来处理视频和音频文件。它支持多种格式的转换、编码、解码、转码、流处理等。FFmpeg 包括了 libavformat、libavcodec、libavutil、libswscale、libpos…

JAVA学习笔记01-变量的初始化

package day01; public class VarDemo { public static void main(String[] args) { int a; //int b,c,d; // int a; int e 300; //声明一个int(整数)的变量名为e并为e存储了300这样的整数数据 声明时并初始化 int f; //声明一个…

组播 2024 9 11

PIM(Protocol Independent Multicast)是一种常用的组播路由协议,其独立于底层的单播路由协议,能够在多种网络环境中有效地实现多播路由功能。PIM主要有两种模式:PIM Sparse Mode (PIM-SM) 和 PIM Dense Mode (PIM-DM)&…

sqlx1.3.4版本的问题

sqlx1.3.4版本存在问题,在调用sqlx的Select方法时,如果传入的dest是一个slice且slice不为空,查询结果将会追加在这个slice已有的元素后面。这位用户认为这个行为是“a little surprising”的,且与json 反序列化的表现不一致&#…

【C++题解】1580. 扫雷(mine)

欢迎关注本专栏《C从零基础到信奥赛入门级(CSP-J)》 问题:1580. 扫雷(mine) 类型:二维数组 题目描述: 扫雷游戏是一款十分经典的单机小游戏。在 n 行 m 列的雷区中有一些格子含有地雷&#x…

I/O 多路复用:`select`、`poll`、`epoll` 和 `kqueue` 的区别与示例

I/O 多路复用是指在一个线程内同时监控多个文件描述符(File Descriptor, FD),以便高效地处理多个 I/O 事件。在 UNIX/Linux 和 BSD 系统中,select、poll、epoll、kqueue 都是实现 I/O 多路复用的系统调用。它们各有特点&#xff0…

el-input设置type=‘number‘和v-model.number的区别

el-input设置typenumber’与设置.number修饰符的区别 1. 设置type‘number’ 使用el-input时想收集数字类型的数据,我们首先会想到typenumber,设置完type为number时会限制我们输入的内容只能为数字,不能为字符/汉字等非数字类型的数值&…

房产销售系统开发:SpringBoot技术要点

摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于房产销售系统当然也不能排除在外,随着网络技术的不断成熟,带动了房产销售系统,它彻底改变了过去传统的…

基于Prometheus和Grafana的现代服务器监控体系构建

构建基于Prometheus和Grafana的现代服务器监控体系是一个非常有效的方式来监控服务器性能、资源利用率和应用程序健康状况。以下是一些步骤和指南,帮助您构建这样一个监控体系: 1. **安装和配置Prometheus**: - 下载并安装Prometheus&…

性能诊断的方法(五):架构和业务诊断

关于性能诊断的方法,我们可以按照“问题现象—直接原因—问题根源”这样一个思路去归纳。我们先从问题的现象去入手,包括时间的分析、资源的分析和异常信息的分析。接下来再去分析产生问题现象的直接原因是什么,这里我们归纳了自上而下的资源…

外观模式详解:如何为复杂系统构建简洁的接口

🎯 设计模式专栏,持续更新中 欢迎订阅:JAVA实现设计模式 🛠️ 希望小伙伴们一键三连,有问题私信都会回复,或者在评论区直接发言 外观模式 外观模式(Facade Pattern)为子系统中的一组…

linux系统安装miniconda3

一、下载minconda3 下载地址:https://docs.conda.io/en/latest/miniconda.html 一般国内访问比较困难,可到清华软件镜像站 Index of /anaconda/miniconda/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 需要特别注意自己的下载版本和自己的…

初识爬虫2

requests学习: 小技巧,如果你用的也是pycharm,对于控制台输出页面因为数据很长一行,不方便进行查看, 可以让它自动换行: 1.requests文档阅读学习链接:快速上手 — Requests 2.18.1 文档 需掌…

如何利用 Redis 列表实现一个简单的任务调度系统?

以下是利用 Redis 列表实现一个简单任务调度系统的步骤: 一、任务存储 定义任务格式 每个任务可以是一个包含任务相关信息的字符串或者 JSON 对象。例如,任务可以包含任务 ID、任务执行的函数名、执行参数、执行时间等信息。例如,一个简单的任务可以表示为{"id":…

【运维监控】Prometheus+grafana监控zookeeper运行情况

运维监控系列文章入口:【运维监控】系列文章汇总索引 文章目录 一、prometheus二、grafana三、prometheus集成grafana监控zookeeper1、修改zookeeper配置2、修改prometheus配置3、导入grafana模板4、验证 本示例通过zookeeper自带的监控信息暴露出来,然后…

基于imx6ull平台opencv的图像采集和显示屏LCD显示功能(带Qt界面)

目录 一、概述二、环境要求2.1 硬件环境2.2 软件环境三、开发流程3.1 编写测试3.2 验证功能一、概述 本文档是针对imx6ull平台opencv的图像采集和显示屏LCD显示功能,创建Qt工程,在工程里面通过点击按钮,实现opencv通过摄像头采集视频图像,将采集的视频图像送给显示屏LCD进…

LabVIEW编程快速提升的技术

在LabVIEW程序员的成长过程中,很多技术和概念看似简单、常用,但真正掌握并能熟练运用,往往需要踏踏实实的实践与积累。没有什么是能够一蹴而就的,唯有通过不断的专注与深入,才能获得显著的提升。要想在LabVIEW开发上取…