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编译。

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

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

相关文章

Windows Server 2019修改网络位置为公用网络

Windows Server 2019修改网络位置与Windows有点点区别,特记录如下列图:

我是这样通过CATTI考试的,没办法,必须考!原创首发

2023年“侥幸”通过CATTI英语二级笔译。11月初考试,按官方原计划应该是2024年1月初公布考试成绩,但12月底就突然出分了。当时正好在上班,忙里偷闲登录网址、查分,没有想象中的那么激动,一切平淡如水。随后,…

基于springboot+vue的知识管理系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

Linux篇:进程

一. 前置知识 1.1冯诺依曼体系结构 我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系 为什么计算机要采用冯诺依曼体系呢? 在计算机出现之前有很多人都提出过计算机体系结构,但最…

【国产MCU】-CH32V307-通用定时器(GPTM)-单脉冲模式

通用定时器(GPTM)-单脉冲模式 文章目录 通用定时器(GPTM)-单脉冲模式1、单脉冲模式介绍2、驱动API介绍3、单脉冲使用实例本文将详细介绍如何使用CH32V307通用定时器的单脉冲模式。 1、单脉冲模式介绍 单脉冲模式可以响应一个特定的事件,在一个延迟之后产生一个脉冲,延迟…

关于参数处理那点事,C标准库反汇编解析

关于参数处理那点事,C标准库反汇编解析 1 stdarg.h 内容概览 这个头文件用于提供访问无名参数(既没有命名也没有类型)的类型和宏。 假设函数形如: void functionWithMltipleInput(normalType n, ...)第一个参数名为n,后续省略号…

【C++精简版回顾】6.构造函数

一。类的四种初始化方式 1.不使用构造函数初始化类 使用函数引用来初始化类 class MM { public:string& getname() {return name;}int& getage() {return age;}void print() {cout << "name: " << name << endl << "age: &quo…

【2024软件测试面试必会技能】

Unittest(5)&#xff1a;unittest_忽略用例 忽略用例 在执行测试脚本的时候&#xff0c;可能会有某几条用例本次不想执行&#xff0c;但又不想删也 不想注释&#xff0c;unittest通过忽略部分测试用例不执行的方式&#xff0c;分无条件忽略和有条 件忽略,通过装饰器实现所描述…

基于Embedding召回和DSSM双塔模型

文章目录 基于Embedding召回介绍基于Embedding召回算法分类I2I召回U2I召回 DSSM模型DSSM双塔模型层次 基于Embedding召回介绍 基于embedding的召回是从内容文本信息和用户查询的角度出发&#xff0c;利用预训练的词向量模型或深度学习模型&#xff0c;将文本信息转换成向量进行…

进程线程间的通信:2024/2/22

作业1&#xff1a;代码实现线程互斥机制 代码&#xff1a; #include <myhead.h>//临界资源 int num10;//创建一个互斥锁 pthread_mutex_t mutex;//任务一 void *task1(void *arg) {//获取锁资源pthread_mutex_lock(&mutex);num123;sleep(3);printf("task1:num…

【打工日常】使用docker部署StackEdit编辑器-Markdown之利器

一、StackEdit介绍 StackEdit一款强大的在线Markdown编辑器&#xff0c;不仅具备卓越的写作功能&#xff0c;还支持实时预览、多设备同步等特性。 很多时候基于安全和信息保密的关系&#xff0c;建议放在自己的服务器或者本地linux去运行&#xff0c;这样会比较省心。 二、本次…

电商数据采集+跨境电商|API电商数据采集接口洞悉数字新零售发展

随着全球经济一体化和电子商务的快速发展&#xff0c;网络购物的需求日益增加。不断涌现的电商企业使得行业的竞争情况愈演愈烈。在这种情况下&#xff0c;企业不仅要加大经营力度&#xff0c;还要在自己的基础设施和技术上持续投入&#xff0c;才能更好的适应市场和消费习惯。…