Rust语言入门第一篇-环境搭建

Rust语言入门第一篇

在这里插入图片描述
Rust官网

一,环境搭建

在这里插入图片描述

1、C++开发环境配置

Rust 语言的底层是依赖于 C/C++ 编译器的。在安装 Rust 编译器时,通常会自动安装所需的 C/C++ 编译环境,以便 Rust 能够生成可执行文件或库。因此,在安装 Rust 之前,建议确保系统已经安装了 C/C++ 编译器。
下载地址:https://github.com/niXman/mingw-builds-binaries/releases
在这里插入图片描述
如果嫌弃下载的慢可以联系我给你压缩包

下载下来,接下来进行安装流程

下载下来之后进行解压
在这里插入图片描述

放入到自己的开发工具目录里面
下一步配置环境变量
在这里插入图片描述

点击去

在这里插入图片描述

在这里插入图片描述

找到自己的路径

在这里插入图片描述

在这里插入图片描述

验证C++是否环境配置成功

按下 “Win + R” 键,打开 “运行” 对话框。 输入

gcc -v

在这里插入图片描述

2.Rust 环境配置

点击下载

如果您曾经安装过 rustup,可以执行 rustup update 来升级 Rust。
在这里插入图片描述
Rust 编译工具推荐使用刚才从上方链接中下载的 Rustup 安装。下载好的 Rustup 在 Windows 上是一个可执行程序 rustup-init.exe。
双击点击打开
在这里插入图片描述

给了我们三个选项,我选择3
在这里插入图片描述

在这里插入图片描述
回车
在这里插入图片描述
下载完成后,接下来配置环境变量

在这里插入图片描述
往上翻,已经给出了文件地址了,直接进行环境配置就行了

在这里插入图片描述

配置 PATH 环境变量

在 Rust 开发环境中,所有工具都安装在 ~/.cargo/bin 目录中,您可以在这里找到包括 rustc、cargo 和 rustup 在内的 Rust 工具链。

Rust 开发者通常会将该目录加入 PATH环境变量中。在安装过程中,rustup 会尝试配置 PATH。 由于不同平台、命令行 Shell 之间存在差异,rustup 中也可能存在 Bug,因此在终端重启或用户重新登录之前,rustup 对 PATH 的修改可能不会生效,甚至完全无效。

如果安装后在终端尝试执行 rustc --version 。
此话摘自官网

验证Rust环境是否配置成功

按下 “Win + R” 键,打开 “运行” 对话框。 输入

rustc --version

在这里插入图片描述

二,我的第一个Rust程序

个人喜欢用IDEA,接下来用IDEA进行演示

在写第一个程序之前,需要下载这个插件
在这里插入图片描述

创建项目
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在启动的过程中报错了
按下 “Win + R” 键,打开 “运行” 对话框。 输入

rustup default stable-x86_64-pc-windows-gnu 

在这里插入图片描述
这下就运行成功了

代码讲解

1. fn main() {

这行代码定义了一个名为main的函数。在Rust程序中,main函数是程序的入口点,也是程序开始执行的地方。Rust程序从main函数开始执行,因此这个函数是必须的,没有main函数的Rust程序将无法正常运行。

2. println!("Hello, world!");

这是main函数中的一行代码,它调用了一个宏(macro)println! 来向控制台输出一段文本。在Rust中,println! 是一个宏,用于在标准输出流(通常是控制台)打印一段格式化的文本。在这里,println!("Hello, world!"); 的作用是将字符串"Hello, world!" 输出到控制台。

  • println! 是一个宏,而不是普通的函数。宏在Rust中使用!来调用,例如println!panic!等。
  • "Hello, world!" 是一个字符串字面量(string literal),它是一个固定的文本内容,会被直接输出到控制台。
完整代码解释:
fn main() {println!("Hello, world!");
}
  • fn main() { ... }:定义了一个名为main的函数,该函数没有参数,也没有返回值(返回类型为(),即unit类型)。
  • println!("Hello, world!");:在main函数体内调用println!宏,将字符串"Hello, world!" 输出到控制台。
执行过程:

当你运行这段Rust程序时,操作系统会首先调用main函数。在main函数中,println!("Hello, world!");会被执行,导致字符串"Hello, world!"被输出到控制台。这是一个简单但经典的示例,用于展示如何编写并执行最基本的Rust程序。

注意事项:
  • Rust的语法相对严格和安全,因此每个语句末尾需要分号;来结束。
  • 字符串字面量(如"Hello, world!")是不可变的,它们存储在程序的只读内存区域中。
  • Rust中的宏(macro)和普通函数有所区别,宏在编译时进行代码替换,因此可以实现更灵活的代码生成和转换。

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

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

相关文章

Docker之数据卷和Dockerfile

目录 一、Docker数据管理 二、数据卷 创建数据卷 查看数据卷 删除数据卷 挂载数据卷 三、数据卷容器 创建数据卷容器 测试数据卷容器 备份数据卷容器 还原数据卷容器 四、Dockerfile 什么是Dockerfile 基本结构 常用指令 快速入门 编写Dockerfile文件 构建镜…

安全升级,智能领航:RFID技术推动铁路锁控系统进入新时代

随着我国铁路运输行业的快速发展,铁路安全运营的重要性日益凸显,为了提高铁路运输安全性,降低人为操作失误,航连科技提出了一种基于RFID技术的铁路智能锁控系统解决方案,旨在为我国铁路安全运营提供有力支持。 一、系统…

C++:VS dump调试(2)

之前写的: C:VS2019调试dump文件-CSDN博客 1、需要dump文件【这个一般是客户现场收集的】 2、对应的pdb文件【这个是软件编译时候生成的】 3、代码【有可能只有自己负责模块的代码,没有全部代码,但是基本调试也是只会用到自己部…

IP协议中的四大支柱:DHCP、NAT、ICMP和IGMP的功能剖析

DHCP动态获取 IP 地址 我们的电脑通常都是通过 DHCP 动态获取 IP 地址,大大省去了配 IP 信息繁琐的过程。 客户端首先发起 DHCP 发现报文(DHCP DISCOVER) 的 IP 数据报,由于客户端没有 IP 地址,也不知道 DHCP 服务器的…

FPGA:图像数字细节增强算法(工程+仿真+实物,可用毕设)

目录 日常唠嗑一、视频效果二、硬件及功能1、硬件选择2、功能3、特点 未完、待续……四、工程设计五、板级验证六、工程获取 日常唠嗑 有2个多月没写文章了,又是老借口:“最近实在是很忙”🤣,不过说真,确实是比较忙&am…

DIY可视化UniApp表格组件

表格组件在移动端的用处非常广泛,特别是在那些需要展示结构化数据、进行比较分析或提供详细信息的场景中。数据展示与整理:表格是展示结构化数据的理想方式,特别是在需要展示多列和多行数据时。通过表格,用户可以轻松浏览和理解数…

java数据结构与算法刷题-----LeetCode238. 除自身以外数组的乘积

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 动态规划:左右乘积列表2. 滚动数组对动态规划过程…

老子云、AMRT3D、眸瑞科技

老子云概述 老子云3D可视化快速开发平台,集云压缩、云烘焙、云存储云展示于一体,使3D模型资源自动输出至移动端PC端、Web端,能在多设备、全平台进行展示和交互,是全球领先、自主可控的自动化3D云引擎。 平台架构 平台特性 1、基…

Open CASCADE学习|统计形状拓扑数量

边界表示法(Boundary Representation,简称B-Rep)是几何造型中最成熟、无二义的表示法。它主要用于描述物体的几何信息和拓扑信息。在边界表示法中,一个实体(Solid)由一组封闭的面(Face&#xff…

easyExcel - 按模板导出

目录 前言一、情景介绍二、文档介绍2.1 读取模板2.2 填充模板 三、代码示例3.1 案例一:工资表3.2 案例二:报价单 四、我所遇到的问题 前言 Java-easyExcel入门教程:https://blog.csdn.net/xhmico/article/details/134714025 之前有介绍过如…

VSCode配置AI自动补全插件Tabnine

面向软件开发人员的 AI 助手 使用 AI 代码完成更快地编写代码 什么是Tabnine Tabnine 是一款 AI 代码助手,可让您成为更好的开发人员。Tabnine 将通过所有最流行的编码语言和 IDE 的实时代码完成、聊天和代码生成来提高您的开发速度。 无论您将其称为 IntelliSens…

一文读懂CSS中的阴影:box-shadow,text-shadow,drop-shadow的区别与使用方式

一、区别 box-shadow 应用于元素,为元素本身添加阴影效果。 text-shadow 应用于文本,为文本内容添加阴影效果。 drop-shadow 是filter属性的一部分,通常用于图像,为其添加阴影效果。 二、box-shadow box-shadow属性用于为元素&…

无线局域网安全协议-WEP,WPA,WAPI,

目录 一、WEP(有线等效保密) 二、WPA(Wi-Fi网络安全接入) ​编辑 三、WAPI(无线局域网鉴别和保密基础结构) WLAN(Wireless Local Area Network)指应用无线通信技术将计算机设备互…

C语言程序的编译与链接

目录 1.翻译环境和运行环境2.翻译环境2.1 预处理(预编译)2.2 编译2.3 汇编2.4 链接 3.运行环境 1.翻译环境和运行环境 在ANSI C的任何一种实现中,存在两个不同的环境。 翻译环境:在这个环境中源代码被转换为可执⾏的机器指令&am…

每日OJ题_两个数组dp⑤_力扣10. 正则表达式匹配

目录 力扣10. 正则表达式匹配 解析代码 力扣10. 正则表达式匹配 10. 正则表达式匹配 难度 困难 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 . 和 * 的正则表达式匹配。 . 匹配任意单个字符* 匹配零个或多个前面的那一个元素 所谓匹配&#xff0c…

springboot 整合 mybatis(配置版)

代码及配置整合 创建实体类,与数据库对应 创建 mapper、service 和 controller @AutowiredUserService userService;@ResponseBody@GetMapping("/user")public com.vazquez.bootstudy.model.User getById(@RequestParam("id") Long id) {return userServ…

XC7A35T-2FGG484 嵌入式FPGA现场可编程门阵列 Xilinx

XC7A35T-2FGG484 是一款由Xilinx(赛灵思)制造的FPGA(现场可编程门阵列)芯片 以下是XC7A35T-2FGG484 的主要参数: 1. 系列:Artix-7 2. 逻辑单元数量:33280个 3. 工艺技术:28nm 4. …

设计模式之中介者模式讲解

概念:也称为调停者模式。用一个中介者对象封装一系列对象的交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 抽象中介者:定义中介者的操作。具体中介者:实现…

【HTML】简单制作一个动态变色光束花

目录 前言 开始 HTML部分 效果图 ​编辑​编辑​编辑​编辑总结 前言 无需多言,本文将详细介绍一段代码,具体内容如下: 开始 首先新建文件夹,创建一个文本文档,其中HTML的文件名改为[index.html]&a…

【CTF】rip--堆栈的简单认识

前言 最近在学二进制,准备拿BUUCTF的pwn试试手,还在摸索的阶段,有什么思路出错的地方还请指出。 解题思路 下载文件到kali,查看文件为 64-bit的ELF(ELF为Linux下的可执行文件,相当于Windows的exe&#xff0…