Rust开发环境搭建到运行第一个程序HelloRust

news2024/11/23 8:45:58

一、Rust语言

1.1 Rust语言介绍

Rust 语言是一种高效、可靠的通用高级语言。其高效不仅限于开发效率,它的执行效率也是令人称赞的,是一种少有的兼顾开发效率和执行效率的语言。

Rust 语言由 Mozilla 开发,最早发布于2014年 9月。Rust 的编译器是在 MIT License 和 Apache License 2.0 双重协议声明下的免费开源软件。

Rust 语言代码文件后缀名为**.rs**, 如hello.rs
在这里插入图片描述
Rust图标

1.2 Rust语言的特点

Rust是一门赋予每个人构建可靠且高效软件能力的语言。

高性能 - Rust 速度惊人且内存利用率极高。由于没有运行时和垃圾回收,它能够胜任对性能要求特别高的服务,可以在嵌入式设备上运行,还能轻松和其他语言集成。

可靠性 - Rust 丰富的类型系统和所有权模型保证了内存安全和线程安全,让您在编译期就能够消除各种各样的错误。

生产力 - Rust 拥有出色的文档、友好的编译器和清晰的错误提示信息, 还集成了一流的工具 —— 包管理器和构建工具, 智能地自动补全和类型检验的多编辑器支持, 以及自动格式化代码等等。

Rust 语言可以用于开发:
传统命令行程序 - Rust 编译器可以直接生成目标可执行程序,不需要任何解释程序。
Web 应用 - Rust 可以被编译成 WebAssembly,WebAssembly 是一种 JavaScript 的高效替代品。
网络服务器 - Rust 用极低的资源消耗做到安全高效,且具备很强的大规模并发处理能力,十分适合开发普通或极端的服务器程序。
嵌入式设备 - Rust 同时具有JavaScript 一般的高效开发语法和 C 语言的执行效率,支持底层平台的开发。
在这里插入图片描述
在这里插入图片描述

二、搭建Rust开发环境

这里介绍一款Jetbrains公司IDE-CLion,一款C和C++跨平台的IDE,这里主要使用CLion IDE 结合Rust 插件来搭建Rust集成开发环境。
在这里插入图片描述

这里主要分为三步:
1、安装mingw64
2、安装Rust
3、安装CLion、配置Rust插件

2.1 下载安装mingw64

mingw64被托管在sourceforge站点上,因为这是外国网站,所以访问可能会有些慢。
在这里插入图片描述
点击下载 sourceforge
打开网站后,找到下图红框中的 x86_64-posix-seh
点击打开下载页面,数秒后开始下载。在这里插入图片描述
下载开始倒计时,和你的网速也有一定关系。
在这里插入图片描述
点击下载好的x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z是一个解压版的文件,解压到你自己想要放的目录(建议此目录不要有中文空格等异常字符),我这里是解压到了 D:\RUST\mingw64 目录中
在这里插入图片描述
在这里插入图片描述

2.2 在Path中配置并测试mingw64的环境变量

D:\RUST\mingw64
在这里插入图片描述
测试是否配置成功: 在cmd中输入gcc --version,如下图所示,就代表配置成功了。
在这里插入图片描述
补充:x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z 各标识

x86_64:64位版本

i686:32位版本

release:发布版。

posix:操作系统接口标准为posix,相比win32,posix对C++11的标准库支持的更好

win32:操作系统接口标准为win32

sjlj:采用sjlj的异常处理,这种方式比起其他异常处理会慢得多

dwarf:采用dwarf的异常处理,这种方式需要在可执行程序中添加额外的调试信息,使得程序体积较大

seh:采用seh的异常处理,即使用windows自身的异常处理机制

2.3 下载Rust在线安装工具-rustup-init.exe

Rust在线安装工具-rustup-init,默认安装源是国外的,服务器访问慢导致安装慢,可以通过设置环境变量RUSTUP_DIST_SERVERRUSTUP_UPDATE_ROOT,改变镜像源从国内的USTC中科大的镜像源下载。
在这里插入图片描述

2.4 安装rustup-init.exe

在cmd中运行rustup-init.exe,输入start rustup-init.exe
配置过程:
在这里插入图片描述
完成上图中的安装设置的配置后,选择1,开始安装:
在这里插入图片描述
安装过程中需要从网络上刚下载很多工具包,需要等待数秒或者数分钟,时间长短取决于你的网络状况:
在这里插入图片描述
出现**Rust is installed now.Great!**就表示安装结束了。

在这里插入图片描述
Cargo是Rust的包管理工具,上图它的目录位于 %USERPROFILE%.cargo\bin 即 当前用户目录下(C盘).cargo\bin

在这里插入图片描述

2.5 测试rustc

在这里插入图片描述

2.6 命令行创建运行HelloWorld

在这里插入图片描述
helloworld20230430目录结构如下:
在这里插入图片描述
Rust源文件main.rs位于src目录下:
在这里插入图片描述
main.rs源码如下:
在这里插入图片描述
以上,搭建基础Rust基础环境就结束了。

三、使用CLion集成Rust插件并创建Rust项目

3.1下载CLion

CLion:A cross-platform IDE for C and C++ by jetBrain

提示:此IDE需要收费,但可试用。

安装好,打开CLion如下图所示,在Plugins中点击Marketplace,输入关键词rust搜索名为Rust的插件,点击Install

在这里插入图片描述
点击 Restart IDE,使得刚刚下载安装的Rust插件生效。
在这里插入图片描述

3.2 创建Rust项目

点击New Project,如下图所示选择Rust,再在右边输入框中输入项目位置,即Location:
在这里插入图片描述
在这里插入图片描述
点击上图右下角Create,创建名为HelloRust的Rust项目。
在这里插入图片描述
HelloRust项目的目录结构:
在这里插入图片描述
下图三种方法捷皆可运行
在这里插入图片描述
运行结果:
在这里插入图片描述

3.3 补充

这里可以进行environment的配置:
在这里插入图片描述

在这里插入图片描述

四、官方站点一览

CLion:A cross-platform IDE for C and C++ by jetBrain
https://sourceforge.net/projects/mingw-w64/files/mingw-w64/
https://sourceforge.net/projects/mingw-w64/
https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/
https://www.mingw-w64.org/downloads/#mingw-builds

https://www.rust-lang.org/

https://www.rust-lang.org/learn/get-started

https://www.rust-lang.org/zh-CN/learn/get-started

https://www.rust-lang.org/zh-CN/tools/install

https://www.rust-lang.org/zh-CN/tools/install

https://kaisery.github.io/trpl-zh-cn/

https://github.com/rust-lang/book/blob/main/src/title-page.md

https://www.runoob.com/rust/rust-tutorial.html

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

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

相关文章

《ADC和DAC的基本架构》----学习记录(二)

2 模数转换器 2.1 ADC架构I:Flash转换器 2.1.1 比较器:1位ADC 转换开关是 1 位 DAC,而比较器是 1 位 ADC,如图所示。如果输入超过阈值,输出即会具有一个逻辑值,而输入低于阈值时输出又会有另一个值。此外…

寻找2020+跳蚱蜢(蓝桥杯JAVA解法)

目录 寻找2020:用户登录 题目描述 运行限制 跳蚱蜢:用户登录 题目描述 运行限制 寻找2020:用户登录 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 小蓝有一个数字矩阵&a…

使用ChatGPT生成了十种排序算法

前言 当前ChatGPT非常火爆,对于程序员来说,ChatGPT可以帮助编写很多有用的代码。比如:在算法的实现上,就可以替我们省很多事。所以,小试牛刀一下,看看ChatGPT生成了排序算法怎么样? 简介 排序…

网站搭建之配置tomcat

【 本次配置架构】 【安全配置】 1.删除后台登录 在tomcat安装目录下的/conf文件下编辑tomcat-users.xml,删除里面带有标签的内容块,默认这部分是被注释了的。注释了任然会显示后台登录,需要彻底删除。 进入末行模式,也就是使用vim进去后&…

Flask开发之环境搭建

目录 1、安装flask 2、创建Flask工程 ​编辑 3、初始化效果 4、运行效果 5、设置Debug模式 6、设置Host 7、设置Port 8、在app.config中添加配置 1、安装flask 如果电脑上从没有安装过flask,则在命令行界面输入以下命令: pip install flask 如果电…

【MFAC】基于偏格式动态线性化的无模型自适应控制(Matlab代码)

例题来源:侯忠生教授的《无模型自适应控制:理论与应用》(2013年科学出版社)。 👉对应书本 4.3 单输入单输出系统(SISO)偏格式动态线性化(PFDL)的无模型自适应控制(MFAC) 上一篇博客介绍了基于紧格式动态线性化的无模型…

C++每日一练:打家劫室(详解动态规划法)

文章目录 前言一、题目二、分析三、代码总结 前言 这题目出得很有意思哈,打劫也是很有技术含量滴!不会点算法打劫这么粗暴的工作都干不好。 提示:以下是本篇文章正文内容,下面案例可供参考 一、题目 题目名称: 打家…

实现Newton方法的最小化函数(pytorch)

首先,我们要明确需求 def newton(theta, f, tol 1e-8, fscale1.0, maxit 100, max_half 20) ● theta是优化参数的初始值的一个向量。 ● f是要最小化的目标函数。该函数应将PyTorch张量作为输入,并返回一个张量。 ● tol是收敛容忍度。 ● fscale 粗…

【Leetcode -328.奇偶链表 - 725.分隔链表】

Leetcode Leetcode -328.奇偶链表Leetcode - 725.分隔链表 Leetcode -328.奇偶链表 题目:给定单链表的头节点 head ,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。 第一个节点的索引被认为是 奇数 &am…

苏州百特电器有限公司网站设计

苏州百特电器有限公司网站设计 五一假期作业企业门户网站布局设计 基于 <div> 的企业门户网站设计 by 小喾苦 我这里仅仅是使用 html css 来实现这个网站的效果&#xff0c;并不是宣传这个网站(现在这个网站已经过时并且无法进入) 实现效果 https://xkk1.github.io/…

出差在外,远程访问企业局域网象过河ERP系统「内网穿透」

文章目录 概述1.查看象过河服务端端口2.内网穿透3. 异地公网连接4. 固定公网地址4.1 保留一个固定TCP地址4.2 配置固定TCP地址 5. 使用固定地址连接 转载自远程穿透文章&#xff1a;公网远程访问公司内网象过河ERP系统「内网穿透」 概述 ERP系统对于企业来说重要性不言而喻&am…

初识中央处理器CPU

目录 一、CPU功能 1.控制器功能 2.运算器功能 3.功能执行顺序 4.其他功能 二、CPU结构图 1.CPU与系统总线 2.CPU内部结构 3.运算器中的寄存器组 4.控制器中的寄存器组 三、执行指令的过程 1.指令周期的基本概念 2.完整的指令周期流程 3.数据通路 4.指令周期的数据…

React超级简单易懂全面的有关问题回答(面试)

目录 React事件机制&#xff1a; 2、React的事件和普通的HTML有什么不同&#xff1a; - 事件命名的规则不同&#xff0c;原生事件采用全小写&#xff0c;react事件采用小驼峰 3、React组件中怎么做事件代理&#xff1f;他的原理是什么&#xff1f; 4、React高阶组件、Rend…

【SpringBoot】 整合RabbitMQ 保证消息可靠性传递

生产者端 目录结构 导入依赖 修改yml 业务逻辑 测试结果 生产者端 目录结构 导入依赖 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency>&…

无人机集群路径规划:淘金优化算法(Gold rush optimizer,GRO)提供MATLAB代码

一、淘金优化算法GRO 淘金优化算法&#xff08;Gold rush optimizer&#xff0c;GRO&#xff09;由Kamran Zolf于2023年提出&#xff0c;其灵感来自淘金热&#xff0c;模拟淘金者进行黄金勘探行为。 参考文献&#xff1a; K. Zolfi. Gold rush optimizer: A new population-ba…

Python小姿势 - #### Python技术博客:Python多线程编程

Python技术博客&#xff1a;Python多线程编程 你好&#xff0c;这里是自媒体技术博主Aurora&#xff0c;今天我想分享一下Python多线程编程。 首先&#xff0c;什么是多线程编程&#xff1f;多线程编程是一种让多个线程同时执行的编程方式&#xff0c;它可以让程序的执行更加高…

2023年华中杯C题计算结果

经过一晚上代码的编写&#xff0c;论文的写作&#xff0c;C题完整版论文已经发布&#xff0c; 注&#xff1a;蓝色字体为说明备注解释字体&#xff0c;不能出现在大家的论文里。黑色字体为论文部分&#xff0c;大家可以根据红色字体的注记进行摘抄。对应的详细的写作视频教程&…

推荐一款网站内链爬取python脚本

目标 使用 web-tools 提供的webSpider来爬取网站内链&#xff0c;并且将其导出。 webSpider介绍&#xff1a; 官网链接&#xff1a;https://web-tools.cn/web-spider 仓库地址&#xff1a;https://github.com/duerhong/web-spider Web Spider 专门用于爬取网站内链&#xf…

C++ srand()和rand()用法

参考C rand 与 srand 的用法 计算机的随机数都是由伪随机数&#xff0c;即是由小M多项式序列生成的&#xff0c;其中产生每个小序列都有一个初始值&#xff0c;即随机种子。&#xff08;注意&#xff1a; 小M多项式序列的周期是65535&#xff0c;即每次利用一个随机种子生成的随…

论文学习笔记:Transformer Attention Is All You Need

Transformer: Attention Is All You Need 2022 年年底&#xff0c;一个大语言模型 ChatGPT 横空出世&#xff0c;并且迅速点燃了普罗大众对 AI 的热情&#xff0c;短短两个月&#xff0c; ChatGPT 就成为了史上最快成为上亿月活的应用&#xff0c;并且持续受到关注&#xff0c…