Rust介绍与开发环境搭建

安装rust

rust 安装官方指南:[HTPS][3W].rust-lang.org/tools/install (自己替换 HTPS,3W)

Linux或者Macbook上安装rust

打开终端并输入下面命令:

#因审核问题下面链接需要替换一下 HTPS->httpscurl  --tlsv1.2 [HTPS]://sh.rustup.rs -sSf | sh

这个命令将下载一个脚本并开始安装 rustup 工具,此工具将安装 Rust 的最新稳定版本。可能会提示你输入管理员密码。

过程中,会让您选择工具链,直接回车按默认(或者推荐)的即可。

如果安装成功,将出现下面这行:

Rust is installed now. Great!

OK,这样就已经完成 Rust 安装啦。

注意

rust 编译通常依赖于C/C++,因此通常需要配套安装C/C++的编译工具(gcc 或者 Clang)。

Mackbook 上可以通过下面指令安装:

xcode-select --install

Linux上,应根据相应发行版的包管理工具,来独立安装Clang或者gcc,也可以安装对应的编译套件。

如果你使用 Ubuntu,则可安装

 sudo apt-get install build-essential

如果你使用Centos,则可以安装

sudo yum install  build-essential

Windows上安装rust

Windows 上安装 Rust 需要有 C++ 环境,这个是必须的。

第一步,下载visualstudio

[HTPS]visualstudio.microsoft.com/zh-hans/downloads/  (自己替换HTPS)

下载社区免费版就可以

第二步,安装visualstudio

在visualstudio安装配置页面,组件选择可以选择C++桌面开发,并且在安装详细中可选windosX SDK,然后点击“安装”

安装会持续一段时间,中途会下载一些组件,耐心等待!

安装完成后,会提示重启,直接重启!

第三步,下载安装rustup-init

下载:[HTPS] [3W].rust-lang.org/learn/get-started (自己替换HTPS,3W)

根据自身电脑选择32 位或者64位安装软件。

运行rustup-init会打开一个安装终端

过程中需要选择安装模式,选择默认安装即可(输入1)。

安装过程也会持续一段时间,需要下载组件和编译工具链,请耐心等待。

如果下载过程中,出现了网络问题,导致组件下载失败,可以重新执行安装。

安装成功,会看到 “Rust is installed now. Great!”

完成后,打开终端(推荐用git bash),输入cargo -V, rustc -V 如果都能正常输入,则安装成功。

安装配置vscode

开发rust,目前推荐IDE用vscode。

注意,天翼云 云电脑上默认安装的vscode 是1.7x版本,实测无法安装rust插件,建议升级到最新(1.8x)。

通过网关下载vscode最新稳定版:[HTPS]code.visualstudio.com/ (自己替换HTPS)
在windows版本下载处,有user-installer 和 system-installer,区别是user只适用于当前用户,而system适用于所有用户,并且提供在线升级等功能。可以选择system-installer。

安装完成后,打开vscode,安装rust语言插件

常用的就是rust 和rust-analyzer插件,安装后,可以在vscode 帮助语法联想,显示编译错误,显示提示,显示版本依赖等,对初学者比较友好。

至此,rust 开发环境基本就搭建完成了,可以起一个HelloWorld工程验证!

HelloWorld

打开终端,在目标工程目录下,用cargo new 创建一个新的rust 项目

cargo new helloworld

此时,就会在其目录中创建一个helloworld。

cd 到 helloworld, 可查看到工程中包括一个src目录和Cargo.toml

其中,Cargo.toml 是该工程的配置文件(可以配置包名称,版本,cargo版本,项目依赖,编译配置等等),而src是该工程源码目录。

在项目路径下,执行

cargo run

可以执行运行该项目。

注意,cargo run 实际上执行了build,然后在执行可执行程序。

当然,您也可以 使用 cargo build 编译只编译工程而不运行。默认情况下,cargo build 是以debug 模式编译工程,生成的产物和中级文件均放置于 target/debug路径下。如果您需要编译release 版本,那么可以使用 cargo build --release(对应的,产出物在target/release路径下)。

注:rust 编译器很强大,rust很多特性的实现都是依托于编译器。比如,rust的零成本抽象,本质上是在编译阶段进行的替换、自动代码生成、优化;让编译器帮忙做了哪些重复的劳动。因此,rust的编译相对于golang 是比较慢的;并且debug 和release的优化程度,也是有比较大的差异(甚至一些特性处理上都是有差异的),编译速度也相差较大。通常,在开发阶段选择使用debug编译,而正式发布时,选择relase编译。

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

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

相关文章

好用的UI自动化测试平台推荐

随着软件行业的不断发展,建立一个完善的自动化测试体系变得至关重要。目前,自动化测试主要涵盖接口自动化测试和UI自动化测试两个主要领域。就目前而言,企业在UI自动化测试方面的覆盖率仍然相对较低。 接口自动化测试可以模拟和执行应用程序…

数据库管理-第152期 Oracle Vector DB AI-04(20240220)

数据库管理152期 2024-02-20 数据库管理-第152期 Oracle Vector DB & AI-04(20240220)1 常用的向量检索方法聚类图搜索哈希量化 2 Oracle Vector DB中的索引索引(默认) 索引(高级)3 EMBEDDINGSSQL EMBE…

【Spring底层原理高级进阶】基于Spring Boot和Spring WebFlux的实时推荐系统的核心:响应式编程与 WebFlux 的颠覆性变革

🎉🎉欢迎光临🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟特别推荐给大家我的最新专栏《Spring 狂野之旅:底层原理高级进阶》 &#x1f680…

基于SpringBoot的在线拍卖系统设计与实现(源码+调试+LW+PPT)

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于SpringBoot的在线拍…

2024最佳住宅代理IP服务商有哪些?

跨境出海已成为了近几年的最热趋势,大批量的企业开始开拓海外市场,而海外电商领域则是最受欢迎的切入口。新兴的tiktok、Temu,老牌的Amazon、Ebay,热门的Etsy、Mecari等等都是蓝海一片。跨境入门并不难,前期的准备中不…

科普栏目|水壁炉:光影对家居和空间的影响

在这宁静的夜晚,水壁炉如一位魔法师,点亮了房间的一角。微光中,水在超声波的激荡下,散发出柔和的光芒。灯光随着水离子的律动而变化,犹如水面上微波荡漾。 有时又犹如一位灵巧的调色师,轻抚着橙红的光影&am…

Go语言的100个错误使用场景(48-54)|错误管理

前言 大家好,这里是白泽。**《Go语言的100个错误以及如何避免》**是最近朋友推荐我阅读的书籍,我初步浏览之后,大为惊喜。就像这书中第一章的标题说到的:“Go: Simple to learn but hard to master”,整本书通过分析1…

shell脚本实现Mysql分库分表备份

一.数据库的分库分表? 12张图把分库分表讲的明明白白!阿里面试:我们为什么要分库分表https://mp.weixin.qq.com/s?__bizMzU0OTE4MzYzMw&mid2247547792&idx2&sn91a10823ceab0cb9db26e22783343deb&chksmfbb1b26eccc63b784879…

基于ORB-SLAM2与YOLOv8剔除动态特征点(三种方法)

基于ORB-SLAM2与YOLOv8剔除动态特征点(三种方法) 写上篇文章时测试过程比较乱,写的时候有些地方有点失误,所以重新写了这篇 本文内容均在RGB-D环境下进行程序测试 本文涉及到的动态特征点剔除速度均是以https://cvg.cit.tum.de/data/datasets/rgbd-dat…

c++ 到底是什么呢。需要学的太多了!

如谷歌,苹果,微软,造硬件的更是如此,如amd的,英传达,英特尔,他们都有C加速库。 C难就难在你如果达到顶峰,像些公司一样,是非常难的。因为这些公司已经垄断了市场。 C编译…

Android 圆环带刻度条进度动画效果实现

效果图 需求是根据传感器做一个重力球效果,先实现了动画后续加上跟传感器联动. 又是摆烂的一天, 尚能呼吸,未来可期啊 View源码 package com.android.circlescalebar.view;import android.content.Context; import android.content.res.Typ…

LabVIEW高效核磁测井仪器多线程优化

LabVIEW高效核磁测井仪器多线程优化 为提高核磁测井仪器的测试效率与性能,开发了基于LabVIEW的多线程优化模型。该研究针对传统的核磁测井仪器软件,在多任务调度测试和并行技术需求上存在的效率不高和资源利用率低的问题,提出了一个多线程优…

智慧公厕管理系统:让城市智慧驿站更加智慧舒适

智慧公厕管理系统是城市智慧驿站中不可或缺的一部分,它通过全方位的信息化解决方案,为公共厕所的使用、运营和管理提供了一种智能化的方式。作为城市智慧驿站的重要组成部分,智慧公厕管理系统发挥着重要的作用,为城市社会民生提供…

数字化转型导师坚鹏:数字政府技术、业务、数据融合发展路径探索

数字政府建设与发展研究 ——技术、业务、数据融合发展路径探索 课程背景: 很多政府存在以下问题: 不清楚数字政府建设内涵 不清楚数字政府建设现状 不清楚数字政府融合路径 课程特色: 有实战案例 有原创观点 有精彩解读 学…

基于Android的大学生足球赛事管理系统的设计与实现

足球是世界范围内广受欢迎的一种体育运动,国内有中超、中甲及大学生联赛等各级别的赛事,中超和中甲基本上都有专业的球队在运营,而大学生联赛属于校园级别的赛事,其重视程度较为有限,使得其信息化水平不高,…

【2024软件测试面试必会技能】python(5):python读取excel数据

python读取excel数据 xlrd参考:https://www.cnblogs.com/dream66/p/12572007.html openpyxl参考:https://www.cnblogs.com/dream66/p/12599627.html xlrd/xlwt模块简介: python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读…

《最新出炉》系列初窥篇-Python+Playwright自动化测试-20-处理鼠标拖拽-下篇

1.简介 上一篇中,宏哥说的宏哥在最后提到网站的反爬虫机制,那么宏哥在自己本地做一个网页,没有那个反爬虫的机制,谷歌浏览器是不是就可以验证成功了,宏哥就想验证一下自己想法,其次有人私信宏哥说是有那种…

嵌入式培训机构四个月实训课程笔记(完整版)-Linux ARM驱动编程第八天-高级驱动framebuffer(物联技术666)

链接:https://pan.baidu.com/s/1cd7LOSAvmPgVRPAyuMX7Fg?pwd1688 提取码:1688 帧缓冲(framebuffer)设备应用于linux显示技术方面。因为linux的显示平台已经全部基于framebuffer,所以目前在linux环境下开发图形化界面、…

了解JSON的作用及其方法

什么是json JSON(JavaScript Object Notation)是一种轻量级的数据交换格式采用完全独立编程语言的文本格式存储和表示数据(就是字符串)。它基于JavaScript语法,但可以被多种编程语言使用和解析。JSON以键值对的形式存…

Stable Diffusion 绘画入门教程(webui)-ControlNet(深度Depth)

上篇文章介绍了线稿约束,这篇文章介绍下深度Depth 文章目录 一、选大模型二、写提示词三、基础参数设置四、启用ControlNet 顾名思义,就是把原图预处理为深度图,而深度图可以区分出图像中各元素的远近关系,那么啥事深度图&#xf…