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

快速上手 Rust——环境配置与项目初始化

Rust 跨界:全面掌握跨平台应用开发

第一章:快速上手 Rust
1.1 环境配置与项目初始化
1.1.1 安装 Rust 和 Cargo

在开始学习 Rust 之前,首先需要安装 Rust 编程语言及其包管理工具 Cargo。Rust 的安装非常简单,使用官方的安装脚本就可以完成。

步骤 1:安装 Rust

  1. 打开终端(命令提示符)。

  2. 运行以下命令:

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    

    如果您使用 Windows,可以使用 PowerShell:

    iwr https://sh.rustup.rs -useb | sh
    
  3. 安装完成后,您会看到如下信息,说明安装成功:

    Rust is installed now. Great!
    
  4. 关闭并重新打开终端,运行以下命令检查 Rust 是否安装成功:

    rustc --version

步骤 2:安装 Cargo

Cargo 是 Rust 的包管理工具,安装 Rust 时会自动安装 Cargo。你可以通过以下命令检查 Cargo 是否安装成功:

cargo --version

这将显示 Cargo 的版本号。

1.1.2 创建第一个 Rust 项目

使用 Cargo 创建一个新的 Rust 项目非常简单。下面是创建和运行第一个项目的步骤。

步骤 1:创建项目

在终端中,使用以下命令创建一个新项目:

cargo new hello_rust

这将在当前目录下创建一个名为 hello_rust 的新目录,里面包含了项目的基本结构。

步骤 2:进入项目目录

cd hello_rust

步骤 3:查看项目结构

项目目录结构如下:

hello_rust
├── Cargo.toml
└── src└── main.rs
  • Cargo.toml:项目的配置文件,定义了项目的元数据和依赖项。
  • src/main.rs:Rust 源代码文件,程序的入口点。

步骤 4:编写代码

打开 src/main.rs,你会看到默认的代码:

fn main() {println!("Hello, world!");
}

这段代码会在终端打印 "Hello, world!"。

步骤 5:构建和运行项目

在项目根目录下,运行以下命令构建并运行项目:

cargo run

这将编译代码并执行,终端输出将显示:

Hello, world!
1.1.3 项目结构与基本文件说明

了解项目结构对后续开发非常重要。以下是项目中主要文件的说明:

  • Cargo.toml:包含项目的名称、版本、作者和依赖项。例如:

    [package]
    name = "hello_rust"
    version = "0.1.0"
    edition = "2021"[dependencies]
    

    [dependencies] 部分,可以添加项目依赖的其他库。

  • src/main.rs:是 Rust 程序的入口文件,所有的代码逻辑都将放在这里。你可以根据需要创建其他模块。

步骤 4:添加依赖

如果需要在项目中使用第三方库,可以在 Cargo.toml 文件的 [dependencies] 部分添加相应的库。例如,添加 serde 库进行序列化和反序列化:

[dependencies]
serde = "1.0"

添加依赖后,运行以下命令以下载依赖:

cargo build
1.1.4 使用 rustup 管理工具链

rustup 是 Rust 的工具链管理工具,它允许你轻松管理 Rust 版本和工具链。使用 rustup,你可以安装不同版本的 Rust,并在它们之间切换。

步骤 1:安装其他工具链

使用以下命令安装 nightly 版本的 Rust:

rustup install nightly

步骤 2:切换工具链

使用以下命令切换到 nightly 版本:

rustup default nightly

步骤 3:查看已安装的工具链

你可以使用以下命令查看已安装的工具链:

rustup toolchain list
1.1.5 设置代码编辑器(如 VSCode)和插件

为提高开发效率,可以使用 Visual Studio Code(VSCode)作为代码编辑器,并安装相关插件以支持 Rust 开发。

步骤 1:安装 VSCode

如果尚未安装 VSCode,可以前往 VSCode 官网 下载并安装。

步骤 2:安装 Rust 扩展

在 VSCode 中,打开扩展视图,搜索并安装以下扩展:

  • Rust (rls):提供 Rust 语言的支持,包括代码提示、错误检查等功能。
  • Rust Analyzer:提供更强大的代码分析和自动补全功能。

步骤 3:配置

安装完成后,打开 Rust 项目,VSCode 将自动识别项目并提供相关功能。

1.1.6 小结

本节介绍了如何安装 Rust 和 Cargo,创建第一个 Rust 项目,了解项目结构,并设置开发环境。掌握这些基础知识后,您将能够开始编写 Rust 代码并逐步深入学习更复杂的概念。

相关文章:

快速上手 Rust——环境配置与项目初始化

Rust 跨界:全面掌握跨平台应用开发 第一章:快速上手 Rust 1.1 环境配置与项目初始化 1.1.1 安装 Rust 和 Cargo 在开始学习 Rust 之前,首先需要安装 Rust 编程语言及其包管理工具 Cargo。Rust 的安装非常简单,使用官方的安装脚…...

分布式事务Seata-AT模式

1. seata安装 docker 安装 docker run --name seata-server \-p 8091:8091 \-p 7091:7091 \-e SEATA_IP192.168.0.250 \-e SEATA_PORT8091 \seataio/seata-server将安装好的配置文件数据,拷贝一份到物理机 docker cp seata-serve:/seata-server/resources /User/…...

编程知识概览

编程,这个在现代社会中无处不在的词汇,已经从最初的计算机专业人士的专属技能,变成了许多人日常生活和工作中不可或缺的一部分。从简单的网页浏览、邮件发送,到复杂的游戏开发、数据分析,编程的应用几乎覆盖了所有领域…...

基于 GADF+Swin-CNN-GAM 的高创新扰动信号识别模型!

往期精彩内容: Python-电能质量扰动信号数据介绍与分类-CSDN博客 Python电能质量扰动信号分类(一)基于LSTM模型的一维信号分类-CSDN博客 Python电能质量扰动信号分类(二)基于CNN模型的一维信号分类-CSDN博客 Python电能质量扰动信号分类(三)基于Transformer的一…...

【Nextcloud】在 Ubuntu 22.04.3 LTS 上的 Nextcloud Hub 8 (29.0.0) 优化

[TOC](Nextcloud Hub 8 (29.0.0) 优化) Nextcloud 优化是个长期的过程,只能遇到问题解决问题了。遇到的问题和解决办法会逐步的编写完善。 打开 PHP 内存限制 伴随着内容增多,并添加更多的功能,访问 Nextcloud 变慢。通过修改PHP 内存限制&am…...

全渠道供应链打造中企业定制开发2+1链动模式S2B2C商城小程序的策略与影响

摘要:本文探讨了全渠道供应链打造对于零售企业的重要性及面临的挑战,着重分析了物流环节整合的难点,并以家电行业为例说明了节假日期间物流对企业经营的影响。同时,引入“企业定制开发21链动模式S2B2C商城小程序”这一关键因素&am…...

Github 2024-10-24 Go开源项目日报 Top10

根据Github Trendings的统计,今日(2024-10-24统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Go项目10Solidity项目1Ollama: 本地大型语言模型设置与运行 创建周期:248 天开发语言:Go协议类型:MIT LicenseStar数量:42421 个Fork数量:…...

中航资本:锂电行业现分化 优质产能仍然紧俏

2024年前三季度,受轻贱需求增速放缓影响,锂电工业堕入结构性供需错配,产品价格继续低迷,作业盈余全体承压。 当资料端不再稀缺,锂电作业由“卖方商场”转向“买方商场”,工业链博弈天平逐渐向轻贱倾斜。表…...

安宝特案例 | AR技术在院外心脏骤停急救中的革命性应用

00 案例背景 在院外心脏骤停 (OHCA) 的突发救援中,时间与效率直接决定着患者的生命。传统急救模式下,急救人员常通过视频或电话与医院医生进行沟通,以描述患者状况并依照指令行动。然而,这种信息传递方式往往因信息不完整或传递延…...

curl调用微信退款No required SSL certificate was sent

文章目录 前言一、错误一二、错误二 总结 前言 在之前的博客中提到微信证书到期了,需要更换,但是当我更换完证书自信满满的时候,却出现了两个问题,记录一下。 一、错误一 CURL Error: 58unable to load client key: -8178 (SEC_…...

进程守护SuperVisord内部的进程定时监测并重启

一个swoole的wensocket程序运行在SuperVisord下端口9503 设置一个每分钟任务监测9503的端口链接数,输出链接数,并在链接数为0的情况下重启wensocket进程。 以下截图是宝塔面板环境下 #!/bin/bash current$(date %H.%M) ws9503_procnumnetstat -nat | gre…...

[面试题]ES6 Javascript

ES6 箭头函数和普通函数有什么区别? 1)定义方式:箭头函数使用箭头(>)语法,省略了 function 关键字。 2)参数处理:如果只有一个参数,箭头函数可以省略括号。 3)函数体:如果函数体只有一条语句,箭头函数可以省略花括号和 return 关键字 4)…...

四款国内外远程桌面软件横测:ToDesk、向日葵、TeamViewer、AnyDesk

前言 远程桌面软件对于职场人来说并不陌生,可以说是必备的办公软件之一。在经历过新冠疫情后,大家对于远程办公的认识越来越深入,也就在这段期间,远程桌面软件大范围的应用起来,真正走进大众视野并融入我们的工作和生…...

解决电脑突然没有声音

问题描述:电脑突然没有声音了,最近没有怎么动过系统,没有安装或者卸载过什么软件,也没有安装或者卸载过驱动程序,怎么就没有声音了呢? 问题分析:仔细观察,虽然音量按钮那边看不到什…...

ZFX数字股票全球品牌战略新闻发布会在香港盛大举行

香港,2024年10月26日 —— 在香港这座东方之珠,ZFX集团今日在港岛 海逸君绰酒店隆重举办了“ZFX数字股票全球品牌战略新闻发布会暨世界佳 丽群星闪耀香港见面会”。作为全球数字金融领域的一次盛会,本次活动不 仅展示了ZFX集团在数字资产交易…...

vue中elementUI的el-select下拉框的层级太高修改设置!

项目场景: 项目中遇到一个问题,下拉框选择之后弹出一个弹出框选择数据再关闭。 问题就出在,我打开下拉框后再弹出弹出框,弹出框的 z-index 层级没有 select 的层级高,导致我弹框弹出了几个下拉框还在弹出框上面显示着…...

测试员最佳跳槽频率是多少?进来看看你是不是符合

最近笔者刷到一则消息,一位测试员在某乎上分享,从月薪5K到如今的20K,他总共跳了10次槽,其中还经历过两次劳动申诉,拿到了大几万的赔偿,被同事们称为“职场碰瓷人”。 虽说这种依靠跳槽式的挣钱法相当奇葩&…...

【数字信号处理】

https://www.bilibili.com/video/BV1B4421U79k/ 文章目录 1-绪论11-FFT1-绪论 1- Preliminery 引言 信号的概念,离散时间时域,频域2- 获得数字信号 采样,对信号的一种表达方式,是DSP的基础A/D,D/A 数字都是人造的,两个桥梁将现实和人造连接3-如何处理数字信号 两个工具:…...

Docker | 校园网上docker pull或者docker run失败的一种解决方法

场景 需要从仓库拉取镜像 无论使用命令docker pull 还是 docker run 但是总是显示如下的错误: 解决方法 查看虚拟机网络连接方式 Linux上检查校园网是否登录 有界面 无界面 只是命令行操作的Linux 关于Linux服务器端更新命令apt update没有效果问题总结(校园网认证)...

实现Java后端的图形验证码和行为验证码

登录添加图形验证码: 在 Java 中,我们可以使用一些图形处理库(如 java.awt 和 javax.imageio)生成图形验证码,并将验证码文本存储在会话(session)中以供验证。下面是一个完整的实现步骤&#x…...

MD500E无感观测器模型:顺逆风检测与启动功能,低速性能优越的浮点模型

MD500E无感观测器模型顺逆风检测和启动。 逆风可刹停,也可直接切入闭环运行。 低速性能良好,可零速启动,堵转不发散,可正反转切换。 提供原版论文。 电阻、电感、磁链偏差20%情况下,对观测器性能无影响。 注 本模型是M…...

League-Toolkit:基于LCU API的英雄联盟效率工具实战指南

League-Toolkit:基于LCU API的英雄联盟效率工具实战指南 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League-Toolk…...

Ostrakon-VL像素UI设计细节:16色限定调色板与可访问性对比度达标

Ostrakon-VL像素UI设计细节:16色限定调色板与可访问性对比度达标 1. 项目背景与设计理念 1.1 从工业UI到像素艺术的转变 在零售与餐饮行业的AI应用场景中,传统工业级UI往往给人冰冷、复杂的印象。Ostrakon-VL扫描终端大胆采用8-bit复古像素风格&#…...

让ai当你的git导师:用快马开发智能github问答与代码生成助手

最近在尝试学习GitHub的使用时,发现很多操作命令记不住,尤其是遇到合并冲突或者需要回退版本的时候,总是要反复查文档。于是我想,能不能做一个AI助手来帮忙?经过在InsCode(快马)平台上的一番折腾,还真做出了…...

闽北哥-一个人最顶级的能力:复归于朴

一个人最顶级的能力 ——复归于朴**“道家说‘复归于朴’, 儒家说‘赤子之心’, 佛家说‘本自具足’, 鬼谷子说‘知世故而不世故’—— 他们都指向同一种状态: 在红尘中,活出婴儿般的清澈。”🌿 这不是天真…...

白春礼院士:科研活动的基本单元正从人向人机系统转变

“AIfor Science(简称为AI4S)的竞争本质上是认知体系的竞争”,3月29日,中国科学院院士白春礼在第二届浦江AI学术年会开幕式上表示,不同科研体系如何理解科学,是以模型为核心,通过高维空间中的模…...

50| 选数

#include <bits/stdc.h> using namespace std;int n, k, ans, sum; // ans 最终答案 const int N 23; int a[N]; bool st[N];bool isprime(int x) {if (x < 1) return false;for (int i 2; i < sqrt(x); i)if (x % i 0) return false;return true; }void dfs(…...

让通用 URL 准确落到目标 Page Builder:SAP Fiori 页面管理中的重定向实践

在很多 SAP Fiori 项目里,大家更容易把注意力放在 SAPUI5 组件、OData 服务、Launchpad 编排,或者 Fiori Elements 的元数据驱动开发上,却很少有人愿意花时间审视一条看似普通的访问路径。当系统进入页面管理阶段,尤其是管理员通过 Page Administration UI 去打开、维护、跳…...

从变砖到重生:红魔全系9008深度救砖指南与实战解析

1. 什么是9008模式&#xff1f;为什么能救砖&#xff1f; 当你发现红魔手机卡在开机界面、反复重启甚至完全黑屏时&#xff0c;大概率是遇到了传说中的"变砖"。这时候高通芯片隐藏的9008模式就是最后的救命稻草。简单来说&#xff0c;9008模式相当于电脑的BIOS界面&…...

Qwen3.5-4B模型Matlab数据分析加速:模型调用与结果可视化

Qwen3.5-4B模型Matlab数据分析加速&#xff1a;模型调用与结果可视化 1. 引言&#xff1a;当科研遇上大模型 科研工作中最耗时的环节往往不是实验本身&#xff0c;而是数据处理和报告撰写。想象一下这样的场景&#xff1a;你刚完成一组复杂的实验&#xff0c;面对几十页的仪器…...