当前位置: 首页 > news >正文

rust学习一、入门之搭建简单开发环境

1、搭建开发环境(windows11)

a.登录官网

一看就明白,此处略。

b.安装rustup

一看就明白,此处略。

c.安装 cargo script 或者 rust-script

script

cargo install cargo-script

完成后

注意:时间有一点点久。

测试

cargo script main.rs

这个东西可以运行一个单独的rs文件,在学习基础的时候非常有用

注:cargo-script很久没有更新,建议使用rust-script之类的。

d.安装ide

有多个选择,包括eclipse,jetbrain(rustover),vscode。

类似rustover这样的工具的好处之一:看标准库和外部单元包的代码会更加方便一些。

个人推荐使用vscode,因为插件多,性能可以接受,不像Jetbrain那样总是浪费资源。

在初学阶段,个人更喜欢使用cargo的命令行来运行。强烈建议初学者这样入门更好一些。

如果,您比较在意阅读源码,可以使用rustover,这个方面rustover能过提供更好的源码链接,但和vs的差距不大。

2、cargo命令

这是一个极其重要的工具,某种程度上类似mvn,但是比后者强大太多了。

2.1 查看cargo参数

在cmd下执行 cargo --help 可以查看常见的命令,具体效果因版本不同而不同,以下是1.81.0

cargo --help

如果要看更多的可以输入

cargo --list

如果想看更加详细,则可以看官网的文档:

https://doc.rust-lang.org/book/

  

2.2 常见的cargo命令

以下假设工程是在windows E:\learning\gitee\learnRust下,为了便于行文,以下使用$project替代

  • 安装/卸载三方包(可执行程序)  cargo install/uninstall. install有不少参数,包括可以查看安装了什么可执行程序

      cargo install --list可以查看安装了什么:

  • 更新依赖  cargo update
  • 查找包(crate) cargo search
  • 查看项目依赖包 cargo tree

      这个命令的说明比较多,常见的如cargo tree --depth n ,其中n是一个自然数

  • 工程-创建    cargo new projectName

       在$project下会生成cargo.toml文件,这个文件可以编辑。更多信息只能阅读高级内容,此处略。

  • 工程-重新初始化 cargo init ,在一个存在的目录中执行初始化
  • 工程-添加/删除依赖 cargo add/remove(rm) ...

       会修改cargo.toml,类似maven修改pom.xml

  • 工程-构建    cargo build/b

       在$project\target\debug 生成debug版本

  • 工程-发布    cargo build --realease

       在$project\target\release 下生成发布版本

  • 工程-运行测试版本 cargo run/r

      run命令有许多参数和选项,可以通过cargo help run来阅读,也可以看有关资料。

      特别注意,如果需要传递一些特别的参数,则必须形如:

      cargo run  --  xxx xxx  xxx    

      这里的 -- 表示之后的参数都是传递给程序的,而不是cargo的

      如:

      cargo run -- --help  给程序传递参数 "--help"

      如果直接输入cargo run --help xxxx   xxx  ,那么会显示cargo的回显信息,不会执行程序。

  • 工程-运行发布版本  cargo run --release / -r
  • 工程-检查  cargo check/c
  • 工程-测试  cargo test/t

       这个命令在开发阶段会被大量使用,值得好好研究。

  • 工程-移除target目录 cargo clean
  • 工程-发布 cargo publish 打包和上传到仓库

注意,cargo还为其中几个极其常用的命令提供了缩写,分别是:

  • build - b
  • check -c
  • run -r
  • test -t
  • remove -rm

2.3 cargo其它命令

其它的主要是一些关于仓库(包括代码仓库git和cargo仓库)的,以及其它一些乱七八糟的常规命令,例如

查看版本  cargo --version

查看命令帮助 cargo help xxx,例如cargo help run

查看文档 cargo doc ,这还是不错的

第一次运行的时候,cargo会先下载文档:

下载了之后就可以查看了 cargo doc --open ,会在浏览器上打开当前项目有关的文档

实际就是在$project\target\doc下创建html,并打开index.html。

这个还是非常方便的。

具体略。

3、其它几个命令

rustup   -- 安装rust工具链,构建开发环境

rustc     -- rust编译器,这个是实际核心。最体贴的编译器之一,大概就没有更体贴的。

4、ide(集成开发环境)+vscode

在经过一段时间使用后,我决定使用vscode作为我的ide。

优势:

  1. 免费
  2. 插件极多
  3. 功能也很足
  4. 资源占用少

现在ai编码助手极多,可以根据自己的意愿安装,诸如comate,copilot等等。

在入门阶段,建议不要倚重于ai,否则不会学到什么东西的。不要误把ai懂得当做自己懂得,那就大错特错了!

ai的存在,不应以猪化人类智能为代价!

但可以让ai帮助编写重复性得简单代码,帮助阅读一些源码!

5、小结

rust的开发环境很友好,令人惊讶。个人觉得比学习java更加方便。这是因为有个强大的cargo工具。

所以掌握cargo工具非常有必要,有了这个,即使没有专业的ide,也可以修改、编译、发布程序。

cargo的命令除了固有的一些,还有许多命令是可以通过cargo install而获得,例如cargo script

rust-script 是一个很强大的工具,非常适合初学者学习,强烈建议初学者掌握这个!在初级阶段,集成工具不是那么重要,集成工具对于单独调试倒是挺好用的。

就ide而言,我个人更倾向于使用vsCode,足够灵巧,又不像rustover那么无谓地耗费资源!

rust的有关事物的命名都十分古怪,什么rust,cargo,crate...  

希望后面rust不要为了创新而创新,弄一些非业内公知的名词,徒然浪费大家的时间。

  ​ ​

            关注灵活就业新业态,关注公账号:贤才宝(贤才宝https://www.51xcbw.com) ​ 

相关文章:

rust学习一、入门之搭建简单开发环境

1、搭建开发环境(windows11) a.登录官网 一看就明白,此处略。 b.安装rustup 一看就明白,此处略。 c.安装 cargo script 或者 rust-script script cargo install cargo-script 完成后 注意:时间有一点点久。 测试 cargo s…...

浅聊MQ之Kafka与RabbitMQ简用

(前记:内容有点多,先看目录再挑着看。) Kafka与RabbitMQ的使用举例 Kafka的使用举例 安装与启动: 从Apache Kafka官网下载Kafka中间件的运行脚本。解压后,通过命令行启动Zookeeper(Kafka的运行…...

【原创】解决vue-element-plus-admin无法实现下拉框动态控制表单功能,动态显隐输入框

前言 目前使用vue-element-plus-admin想要做一个系统定时任务功能,可以选择不同的定时任务类型,比如使用cron表达式、周期执行、指定时间执行等。每种类型对应不同的输入框,需要动态显隐输入框才行,但是这个vue-element-plus-adm…...

SpringBoot开发——初步了解SpringBoot

文章目录 一、SpringBoot简介 1、什么是Spring Boot2、Spring Boot的优点3、Spring Boot功能 二、Spring与Spring Boot对比三、Spring Boot与Spring MVC四、Spring Boot体系结构五、Springboot Initializr 1、Spring Initializr2、Spring Initializr模块 一、SpringBoot简介…...

双轴伺服电机驱动控制器AGV、AMR专用双伺服电机驱动控制器解决方案

工业机器人数控机床XY机械手双轴机器人堆垛机专用双轴伺服电机驱动控制器48V 14ARMS带有STO功能,隔离高压CAN/RS485/USB通讯支持编码器和霍尔输入 双伺服电机驱动控制器TMCM2611功能介绍 集成2个伺服电机的控制和驱动于一体供电电压48V,驱动电流14A RM…...

【VB语言】EXCEL中VB宏的应用

【VB语言】EXCEL中VB宏的应用 文章目录 [TOC](文章目录) 前言一、EXCEL-VB1.实验过程2.代码 二、EXCEL-VB 生成.c.h文件1.实验过程2.代码 四、参考资料总结 前言 1.WPS-VB扩展包 提示:以下是本篇文章正文内容,下面案例可供参考 一、EXCEL-VB 1.实验过…...

Ubuntu添加桌面快捷方式

以idea为例 一. 背景 在ubuntu中,很多时候是自己解压的文件并没有桌面快捷方式,需要自己找到对应的目录的执行文件手动打开,很麻烦 而只需要在 /usr/share/applications 中创建自定义的desktop文件就能自动复制到桌面 二. 添加方法 创建desk…...

10G EPON光模块

一、10G EPON对称光模块 工作模式:上行突发接收、下行连续发射。 工作原理:当需要发送信号时,系统信号通过光模块的电接口把信号传送到驱动芯片,芯片处理后,驱动激光器发出调制光信号,经光纤发到远端&…...

Elasticsearch+Logstash+Kibana可视化集群部署

文章目录 1.组件介绍简述2.集群规划3.Es组件部署4.Logstash组件部署5.Kibana组件部署6.Kibana的基础使用 1.组件介绍简述 Elasticsearch:开源实时分布式搜索和分析引擎,支持大规模数据存储和高吞吐量,提供丰富的搜索功能和可扩展性。 Logsta…...

基于CanMV IDE 开发软件对K210图像识别模块的开发

简介 CanMV IDE 是一款专为 K210 芯片设计的图形识别 Python 软件,它提供了强大的功能,帮助开发者轻松实现基于 K210 芯片的图形识别应用。无论你是初学者还是经验丰富的开发者,CanMV IDE 都能为你提供便捷的开发环境和丰富的资源。 硬件资…...

win11系统 Docker Desktop提示Docker Engine stopped解决全过程记录

DockerDesktop安装指南以及Windows下WSL2和 Hyper-V相关问题追查 【已解决】win10系统 Docker 提示Docker Engine stopped解决全过程记录 本篇文章主要记录Docker Desktop安装和使用时出现的问题及解决方法,以及后续使用夜神模拟器,关闭了Hyper-V时&am…...

工作室如何实现一机一IP

对于工作室而言,多开游戏账号却是其运营模式的核心需求。他们通过大量囤积金币、资源,再将其变现来获取利润。在这种运营模式下,账号数量直接关系到工作室的收益,所以解决 IP 问题就成了手游工作室发展道路上的首要难题&#xff0…...

WEB安全--SQL注入--二次注入

一、原理: 二次注入的关键在于攻击者的输入并不立即执行,而是经过某些存储或处理后,在后续某个步骤中再触发注入攻击 二、示例: 2.1、sqli-labs-master/less-24: admin# 第一次在网页注册账号和密码时没有漏洞&#x…...

构建现代微服务安全体系:Spring Security、JWT 与 Spring Cloud Gateway 实践

构建现代微服务安全体系:Spring Security、JWT 与 Spring Cloud Gateway 实践 本文将基于提供的代码示例,详细介绍如何在一个Java微服务项目中使用Spring Security、JWT和Spring Cloud Gateway来构建一个高效且安全的微服务体系,并整合性能优…...

Spring Boot 动态数据源实操指南

在实际开发中,我们经常会遇到需要动态切换数据源的场景,比如多租户系统、读写分离、分库分表等。Spring Boot 提供了灵活的配置方式,结合 AbstractRoutingDataSource 可以轻松实现动态数据源切换。本文将带你一步步实现 Spring Boot 动态数据…...

HBase高级技巧:解锁更强大的数据处理能力

HBase高级技巧:解锁更强大的数据处理能力 嘿,小伙伴们!在掌握了HBase的基本操作之后,今天我们将深入探讨一些HBase的高级技巧。这些技巧将帮助你在面对复杂的数据处理需求时更加得心应手,进一步提升系统的性能和可靠性…...

【进阶】JVM篇

为什么学习jvm 1、面试的需要 学过java的程序员对jvm应该不陌生,程序员为什么要学习jvm呢?其实不懂jvm也可以照样写出优质的代码,但是不懂jvm会被大厂的面试官虐的体无完肤。 2、高级程序员需要了解 jvm作用 jvm负责把编译后的字节码转换…...

DeepSeek官方推荐的AI集成系统

DeepSeek模型虽然强大先进,但是模型相当于大脑,再聪明的大脑如果没有输入输出以及执行工具也白搭,所以需要有配套工具才能让模型发挥最大的作用。下面是一个典型AI Agent架构图,包含核心组件与数据流转关系: #mermaid-…...

【动态规划篇】:当回文串遇上动态规划--如何用二维DP“折叠”字符串?

✨感谢您阅读本篇文章,文章内容是个人学习笔记的整理,如果哪里有误的话还请您指正噢✨ ✨ 个人主页:余辉zmh–CSDN博客 ✨ 文章所属专栏:动态规划篇–CSDN博客 文章目录 一.回文串类DP核心思想(判断所有子串是否是回文…...

JENKINS(全面)

一.linux系统中JENKINS的安装 注意:安装jenkins需要安装jdk,而且具体版本的jenkins有相对应的jdk版本。可参考以下链接。 Redhat Jenkins 软件包https://pkg.jenkins.io/redhat-stable/https://pkg.jenkins.io/redhat-stable/https://pkg.jenkins.io/r…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...

JavaScript基础-API 和 Web API

在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...

vue3 daterange正则踩坑

<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...

0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化

是不是受够了安装了oracle database之后sqlplus的简陋&#xff0c;无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话&#xff0c;配置.bahs_profile后也能解决上下翻页这些&#xff0c;但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可&#xff0c…...

ubuntu中安装conda的后遗症

缘由: 在编译rk3588的sdk时&#xff0c;遇到编译buildroot失败&#xff0c;提示如下&#xff1a; 提示缺失expect&#xff0c;但是实测相关工具是在的&#xff0c;如下显示&#xff1a; 然后查找借助各个ai工具&#xff0c;重新安装相关的工具&#xff0c;依然无解。 解决&am…...