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)和普通函数有所区别,宏在编译时进行代码替换,因此可以实现更灵活的代码生成和转换。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

用Vue全家桶手工搓了一个类似抖音短视频的软件,全开源

用Vue全家桶手工搓了一个类似抖音短视频的软件,全开源 软件简介 用Vue全家桶手工搓了一个高仿抖音,全开源 PC浏览器请用手机模式访问。先按F12调出控制台,再按CtrlShiftM切换到手机模式,手机请用Via浏览器或者Chrome浏览器预览。…

Vue的学习之旅-part4

Vue的学习之旅-part1 vue的自带指令v-if v-else-if v-else虚拟DOM的复用v-show 与 v-if 的不同之处:v-if v-show各自合适的使用位置: v-for 循环v-for 循环遍历 :key"item" 绑定key,区分循环的内容循环的应用: 前几篇博…

目标检测——色素性皮肤病数据集

一、重要性及意义 首先,色素性皮肤病变是一类常见的皮肤疾病,其发病率有逐年增高的趋势。这些病变可能由遗传或环境因素导致黑素细胞生成异常,如黑色素瘤等。黑色素瘤具有极高的恶性率和致死率,而且恶化可能性大,容易…

汇编——SSE打包整数

SSE也可以进行整数向量的加法,示例如下: ;sse_integer.asm extern printfsection .datadummy db 13 align 16pdivector1 dd 1dd 2dd 3dd 4pdivector2 dd 5dd 6dd 7dd 8fmt1 db "Packed Integer Vector 1: %d, %d, %d, %d",…

鸿蒙ArkTS开始实例:【canvas实现签名板功能】

使用ArkTS中的canvas实现签名板的功能,canvas画布大家都很熟悉,我们会用它经常实现一些画板或者图表、表格之类的功能。canvas签名板是我在开发APP过程中实现的一个功能,开发过程中也是遇到比较多的问题。我会按照以下几点来讲解开发整个过程…

面试算法-153-旋转图像

题目 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,…

计算机网络实验——学习记录四(TCP协议)

1. 打开TCP服务: nc -e /bin/sh -lv 4499 注释: (1)nc是Linux下启动通讯服务的命令; (2)-e表示在nc命令后再执行bin文件夹下的shell命令,启动shell命令会导致所有从TCP连接传递到…

JavaEE初阶——多线程(一)

T04BF 👋专栏: 算法|JAVA|MySQL|C语言 🫵 小比特 大梦想 此篇文章与大家分享多线程的第一部分:引入线程以及创建多线程的几种方式 此文章是建立在前一篇文章进程的基础上的 如果有不足的或者错误的请您指出! 1.认识线程 我们知道现代的cpu大多都是多核心…

【蓝桥杯嵌入式】第十三届省赛(第二场)

目录 0 前言 1 展示 1.1 源码 1.2 演示视频 1.3 题目展示 2 CubeMX配置(第十三届省赛第二场真题) 2.1 设置下载线 2.2 HSE时钟设置 2.3 时钟树配置 2.4 生成代码设置 2.5 USART1 2.5.1 基本配置 2.5.2 NVIC 2.5.3 DMA 2.6 TIM 2.6.1 TIM2 2.6.2 TIM4 2.6.3 …

ICP配准算法

配准算法 问题定义ICP(point to point)算法思想步骤分解point to point和point to plane的区别ICP配准算法的标准流程NDT 本篇将介绍配准算法,将介绍ICP(point to point)、ICP(point to plane)和NDT算法。其中ICP有两种,point to point表示通过构建点与点…

达梦备份与恢复

达梦备份与恢复 基础环境 操作系统:Red Hat Enterprise Linux Server release 7.9 (Maipo) 数据库版本:DM Database Server 64 V8 架构:单实例1 设置bak_path路径 --创建备份文件存放目录 su - dmdba mkdir -p /dm8/backup--修改dm.ini 文件…

NzN的数据结构--二叉树part1

你叉叉,让你学数据结构你不学;你叉叉,让你看二叉树你不看。 今天我们来一起学习二叉树部分,先赞后看是好习惯。 一、树的概念及结构 1. 树的概念 树是一种非线性的数据结构,它是由n(n>0)个有…

阿里云服务器可以干什么?阿里云服务器主要用途是干嘛的?

阿里云服务器可以干嘛?能干啥你还不知道么!简单来讲可用来搭建网站、个人博客、企业官网、论坛、电子商务、AI、LLM大语言模型、测试环境等,阿里云百科aliyunbaike.com整理阿里云服务器的用途: 阿里云服务器活动 aliyunbaike.com…

SpringCloud Alibaba Sentinel 规则持久化

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅,从传统的模块之间调用,一步步的升级为 SpringCloud 模块之间的调用,此篇文章为第十七篇,即使用 Sentinel 实现规则持久化。 二、概述 从前面我们做的实验可知,…

4/7 QT_day1

#include "mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent) {//窗口设置this->setWindowTitle("小黑子(little black son)");this->setWindowIcon(QIcon("D:\\qq文件\\Pitrue\\pictrue\\black.jpg"));this-&g…

【数据结构与算法】:快速排序和冒泡排序

一,快速排序 快速排序是一种比较复杂的排序算法,它总共有4种实现方式,分别是挖坑法,左右"指针"法,前后"指针"法,以及非递归的快速排序,并且这些算法中也会涉及多种优化措施…

Tokenize Anything via Prompting

SAM的延续,把SAM输出的token序列用来进行分类,分割和一个自然语言的decoder处理,但其实现在多模态的图像的tokenizer也几乎都是用VIT来实现的。一开始认为这篇文章可能是关于tokenize的,tokenize还是很重要的,后来看完…

若依框架学习——分页查询列表

条件查询【多条件】列表展示【分页】SaCheckPermissionTableName TableId NotBlank Page分页 响应数据封装类

JMeter+Ant+Jenkins构建接口报告(无人驾驶版)

展示结果: uc浏览器打开测试报告,绿色显示脚本结果 搭建操作步骤如下 1.jemter写好脚本 2.下载并配置ant环境变量:加上activation.jar、commons-lang3-3.8.1.jar、mail.jar 这3个包 mail.jar需要引用到jmeter 3.下载安装Jenkins 并进行构建…

CKA 基础操作教程(六)

Kubernetes Deployments 理论学习 在 Kubernetes 中,Deployments 是一种资源对象,用于定义和管理容器化应用程序的部署过程, 容器化应用的声明式定义:使用 Deployments ,可以声明性地定义应用程序的部署配置&#x…