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.hqwc.cn/news/599311.html

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

相关文章

如何在社交媒体中使用增强现实来提高客户参与度?

目录 1. 增强现实在社交媒体中的应用是如何发展的 2. 社交媒体营销和广告中的增强现实 3. 社交媒体上的增强现实滤镜和镜头 4. 社交媒体平台上的增强现实购物 5. 利用社交媒体的增强现实事件和品牌激活 6. 增强现实在社交媒体中的未来是什么 7. 社交媒体中的增强现实常见…

Python零基础从小白打怪升级中~~~~~~~入门

第一节:Python入门(一) 1、Python介绍 编程语言就是人和计算机进行交流的一种语言 Pythonc / CJavaPHPC#gobasicqbasicVBVCPython 是一个高层次的结合了解释性、编译性、互动性和面向对象,同时也面向函数的脚本语言。 Python 是…

这就是AI眼中的物理世界:OpenAI Sora音乐短片《Worldweight》和超现实影片《气球人》

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,所以创建了“AI信息Gap”这个公众号,专注于分享AI全维度知识…

C语言 | Leetcode C语言题解之第13题罗马数字转整数

题解: 题解: int romanToInt(char* s) {int symbolValues[26];symbolValues[I - A] 1;symbolValues[V - A] 5;symbolValues[X - A] 10;symbolValues[L - A] 50;symbolValues[C - A] 100;symbolValues[D - A] 500;symbolValues[M - A] 1000;int a…

springCloud-LoadBalancer负载均衡微服务负载均衡器LoadBalancer

2020年前SpringCloud是采用Ribbon作为负载均衡实现,但是在2020后采用了LoadBalancer替代 LoadBalancer默认提供了两种负载均衡策略(只能通过配置类来修改负载均衡策略) 1.RandomLoadBalancer-随机分配策略 2.RoundRobinLoadBalancer-轮询分配…

《云原生安全攻防》-- 云原生应用风险分析

为了满足每位朋友的学习需求,并且支持课程的持续更新,本系列课程提供了免费版和付费视频版两种方式来提供课程内容。我们会持续更新课程内容,以确保内容的度和实用性。 在本节课程中,我们将一起探讨云原生应用在新的架构模式下可能…

(2024,Attention-Mamba,MoE 替换 MLP)Jamba:混合 Transformer-Mamba 语言模型

Jamba: A Hybrid Transformer-Mamba Language Model 公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群) 目录 0. 摘要 1. 简介 2. 模型架构 3. 收获的好处 3.1 单个 80GB GPU 的 Jamba 实现 …

Word wrap在计算机代表的含义(自动换行)

“Word wrap”是一个计算机术语,用于描述文本处理器在内容超过容器边界时自动将超出部分转移到下一行的功能。在多种编程语言和文本编辑工具中,都有实现这一功能的函数或选项。 在编程中,例如某些编程语言中的wordwrap函数,能够按…

深入浅出 -- 系统架构之负载均衡Nginx实现高可用

一、Nginx的高可用 线上如果采用单个节点的方式部署Nginx,难免会出现天灾人祸,比如系统异常、程序宕机、服务器断电、机房爆炸、地球毁灭....哈哈哈,夸张了。但实际生产环境中确实存在隐患问题,由于Nginx作为整个系统的网关层接入…

【多线程】进程process(进程的管理+进程的调度+分时复用(并发)+PCB)

文章目录 进程一、计算机的组成:1.指令(Instruction) 二、浅谈操作系统1.日常的操作系统1.操作系统内核内核:进程的隔离性: 三、进程(process)1.进程的概念2.进程的管理1.管理的两个角度&#x…

RTX RTOS操作实例分析之---邮箱(mailbox)

0 Preface/Foreword 1 邮箱(mailbox) 1.1 mailbox ID定义 static osMailQId app_mailbox NULL; 1.2 定义mailbox结构体变量 #define osMailQDef(name, queue_sz, type) \ static void *os_mail_p_##name[2]; \ const char mail_##name[] #name; \ con…

iOS 17.5系统或可识别并禁用未知跟踪器,苹果Find My技术应用越来越合理

苹果公司去年与谷歌合作,宣布将制定新的行业标准来解决人们日益关注的跟踪器隐私问题。苹果计划在即将发布的 iOS 17.5 系统中加入这项提升用户隐私保护的新功能。 科技网站 9to5Mac 在苹果发布的 iOS 17.5 开发者测试版内部代码中发现了这项反跟踪功能的蛛丝马迹…