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

清晰易懂的Rust安装与配置教程

Rust 是一门以安全性和性能著称的系统级编程语言,适合开发操作系统、游戏引擎和高性能服务。本教程将手把手教你安装 Rust 并配置开发环境,从安装到运行第一个程序,全程无坑!


一、安装 Rust(全平台通用)

1. 通过 rustup 安装(推荐)

rustup 是 Rust 官方工具链管理工具,支持多版本切换和跨平台安装。

Windows/macOS/Linux 通用步骤
  1. 打开终端(Windows 使用 PowerShell 或命令提示符),运行以下命令:
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    
  2. 按提示选择安装选项(默认选 1 即可)。
  3. 安装完成后,运行以下命令使环境变量生效:
    source "$HOME/.cargo/env"  # macOS/Linux
    # Windows 会自动配置,重启终端即可
    

2. 验证安装

rustc --version
# 输出示例:rustc 1.74.0 (79e9716c9 2023-11-13)
cargo --version
# 输出示例:cargo 1.74.0 (ecb9851af 2023-10-18)

二、配置国内镜像(加速依赖下载)

1. 配置 crates.io 镜像

  1. 创建或修改 ~/.cargo/config 文件(Windows 为 C:\Users\用户名\.cargo\config):
    mkdir -p ~/.cargo && touch ~/.cargo/config
    
  2. 添加以下内容(以清华大学镜像为例):
    [source.crates-io]
    replace-with = 'tuna'[source.tuna]
    registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"
    

2. 配置 Rustup 镜像

export RUSTUP_DIST_SERVER="https://mirrors.tuna.tsinghua.edu.cn/rustup"
# 将此命令添加到 ~/.bashrc 或 ~/.zshrc(macOS/Linux)
# Windows 在系统环境变量中添加 RUSTUP_DIST_SERVER

三、编写并运行第一个 Rust 程序

1. 使用 Cargo 创建项目

cargo new hello_rust
cd hello_rust

项目结构:

hello_rust
├── Cargo.toml  # 项目配置
└── src└── main.rs  # 代码文件

2. 编写代码

打开 src/main.rs,输入以下内容:

fn main() {println!("你好,世界!");
}

3. 编译并运行

cargo run
# 输出:你好,世界!

四、新手容易忽略的细节

1. 未安装必要构建工具

  • 现象:编译时报错 linker 'cc' not found
  • 解决
    • macOSxcode-select --install(安装 Xcode 命令行工具)。
    • Linuxsudo apt install build-essential(Ubuntu/Debian)。
    • Windows:安装 Visual Studio Build Tools(勾选 “C++ 生成工具”)。

2. 环境变量未生效

  • 现象:终端提示 rustccargo 命令不存在。
  • 解决
    • 运行 source "$HOME/.cargo/env"(macOS/Linux)。
    • Windows:检查 Path 是否包含 %USERPROFILE%\.cargo\bin

3. 未更新工具链

  • 现象:依赖包要求新版 Rust,但当前版本过低。
  • 解决:定期更新 Rust:
    rustup update
    

4. 未配置镜像导致下载慢

  • 现象cargo build 下载依赖超时。
  • 解决
    • 确保 ~/.cargo/config 和 Rustup 镜像已正确配置(参考第二节)。
    • 临时指定镜像:
      cargo build --registry crates-io --index https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git
      

五、常用命令速查

命令说明
cargo new 项目名创建新项目
cargo build编译项目(生成 target/debug
cargo run编译并运行项目
cargo check检查代码语法(不生成可执行文件)
rustup doc打开本地 Rust 官方文档

六、总结

通过本教程,你已成功完成以下操作:

  1. 安装 Rust:通过 rustup 实现跨平台一键安装。
  2. 配置镜像加速:解决国内下载依赖慢的问题。
  3. 运行首个程序:掌握 Cargo 项目管理工具。

下一步建议

  • 学习 Rust 所有权和生命周期机制(核心难点)。
  • 尝试用 Rust 开发命令行工具(如 clap)。

遇到问题可查阅 Rust 官方文档 或 Rust 中文社区,祝你早日成为 Rust 高手! 🦀🚀

相关文章:

清晰易懂的Rust安装与配置教程

Rust 是一门以安全性和性能著称的系统级编程语言,适合开发操作系统、游戏引擎和高性能服务。本教程将手把手教你安装 Rust 并配置开发环境,从安装到运行第一个程序,全程无坑! 一、安装 Rust(全平台通用) 1…...

零基础使用AI从0到1开发一个微信小程序

零基础使用AI从0到1开发一个微信小程序 准备操作记录 准备 想多尝试一些新的交互方式,但我没有相关的开发经验,html,JavaScript 等都不了解,看了一些使用AI做微信小程序的视频教程,觉得自己也行…...

基于Spring Boot的社区互助平台的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...

【Elasticsearch入门到落地】10、初始化RestClient

接上篇《9、hotel数据结构分析》 上一篇我们讲解了导入的宾馆数据库tb_hotel表结构的具体含义,并分析如何建立其索引库。本篇我们来正式进入链接Elasticsearch的Java代码的编写阶段,先进行RestClient的初始化。 RestClient的初始化分为三步,…...

【AI大模型系列】DeepSeek V3的混合专家模型机制-MoE架构(八)

一、什么是MoE架构 MoE架构的核心思想是将输入数据分配给不同的专家子模型,然后将所有子模型的输出进行合并,以生成最终结果。这种分配可以根据输入数据的特征进行动态调整,确保每个专家处理其最擅长的数据类型或任务方面,从而实…...

HarmonyOS之深入解析如何根据url下载pdf文件并且在本地显示和预览

一、文件下载 ① 网络请求配置 下载在线文件,需要访问网络,因此需要在 config.json 中添加网络权限: {"module": {"requestPermissions": [{"name": "ohos.permission.INTERNET","reason&qu…...

HTML5贪吃蛇游戏开发经验分享

HTML5贪吃蛇游戏开发经验分享 这里写目录标题 HTML5贪吃蛇游戏开发经验分享项目介绍技术栈核心功能实现1. 游戏初始化2. 蛇的移动控制3. 碰撞检测4. 食物生成 开发心得项目收获后续优化方向结语 项目介绍 在这个项目中,我使用HTML5 Canvas和原生JavaScript实现了一…...

AI 的出现是否能替代 IT 从业者?

AI 的出现是否能替代 IT 从业者? AI 的快速发展正在深刻改变各行各业,IT 行业也不例外。然而,AI 并非完全替代 IT 从业者,而是与其形成互补关系。本文将从 AI 的优势、IT 从业者的不可替代性、未来趋势等方面,探讨 AI…...

git 操作记录

1、检查子模块是否在主分支上 [git submodule foreach --recursive \\n [ "$(git rev-parse HEAD)" "$(git rev-parse origin/master)" ] \\n && echo " 一致: $name" || echo "不一致: $name"] 使用 git submodule fore…...

QSettings用法实战(相机配置文件的写入和读取)

很多情况,在做项目开发的时候,将参数独立出来是比较好的方法 例如:相机的曝光次数、曝光时长等参数,独立成ini文件,用户可以在外面修改即可生效,无需在动代码重新编译等工作 QSettings便可以实现该功能 内…...

机器学习——集成学习框架(GBDT、XGBoost、LightGBM、CatBoost)、调参方法

一、集成学习框架 对训练样本较少的结构化数据领域,Boosting算法仍然是常用项 XGBoost、CatBoost和LightGBM都是以决策树为基础的集成学习框架 三个学习框架的发展是:XGBoost是在GBDT的基础上优化而来,CatBoost和LightGBM是在XGBoost的基础上…...

SpringBoot集成Logback终极指南:从控制台到云端的多维日志输出

一、基础配置&#xff1a;快速启用Logback 1. 依赖管理&#xff08;SpringBoot默认支持Logback&#xff09; <!-- 无需额外依赖&#xff0c;但需要排除其他日志框架 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>…...

[蓝桥杯 2023 省 A] 网络稳定性

题目来自DOTCPP&#xff1a; 思路&#xff1a; ①由于题目没有告诉我们成树形结构&#xff0c;可能成环。因此&#xff0c;我们要自己构建树。 ②本体我们通过kruskal重构树&#xff0c;按边权从大到小排序&#xff0c;那么查询的两个点的最近公共祖先权值就是答案。 ③在通…...

SSM框架加成SpringBoot项目

&#x1f353;博主介绍&#xff1a; 资深程序设计专家&#xff0c;专注于网站开发与文档写作&#xff0c;拥有六年互联网行业经验。精通Java、Python、PHP等主流语言&#xff0c;擅长从需求分析到系统设计的全流程开发。累计开发过数百个网站及应用程序&#xff0c;注重代码质量…...

鸿蒙项目源码-天气预报app-原创!原创!原创!

鸿蒙天气预报项目源码包运行成功含文档ArkTS语言。 我半个月写的原创作品&#xff0c;请尊重原创。 原创作品&#xff0c;盗版必究&#xff01;&#xff01;&#xff01;&#xff01; 原创作品&#xff0c;盗版必究&#xff01;&#xff01;&#xff01;&#xff01; 原创作品…...

一文聊聊接入钉钉H5微应用系统实现免登操作技术思路实现验证

一文聊聊接入钉钉H5微应用系统实现免登操作技术思路实现验证 如何创建钉钉应用实现H5端免登录创建钉钉内部应用1.进入钉钉开放平台&#xff0c;配置自己的应用信息2.配置应用相关信息&#xff08;建议选择旧版&#xff0c;后续有一个token获取&#xff0c;新版会提示URL不安全&…...

测试开发-定制化测试数据生成(Python+jmeter+Faker)

实现步骤 步骤一&#xff1a;使用pythonfaker随机生成测试数据 在python中开发脚本&#xff0c;随机生成所需要的数据。import json from faker import Faker faker Faker(locale"zh_CN")def generate_faker_user():return {"name" : faker.name(),&qu…...

智能体开发平台与大模型关系图谱

架构层级分解(以飞速灵燕智能体平台为例)动态交互流程 3. 关键连接点说明 4. 典型数据流示例...

LinuxTCP/UDP基础概念

TCP&#xff08;传输控制协议&#xff09; TCP 是一种面向连接的、可靠的、基于字节流的传输层通信协议。它的主要特点包括&#xff1a; 面向连接&#xff1a;在传输数据之前&#xff0c;需要通过“三次握手”建立连接&#xff1b;传输结束后&#xff0c;通过“四次挥手”断开…...

docker日志大小和保存管理

目录 背景&#xff1a;云服务器小磁盘被docker日志占满 docker日志存放位置查看 避免被无感占满&#xff0c;建议进行配置日志选项&#xff0c;可以缩小文件保留大小和保留个数/时间 注意&#xff1a;compress选项 背景&#xff1a;云服务器小磁盘被docker日志占满 docke…...

Hive SQL实现近N周的数据统计查询

文/朱季谦 先前遇到过一个需求&#xff0c;需要基于HIVE统计近N周范围的数据&#xff0c;例如&#xff0c;统计近7周范围的数据指标。 需要用HIVE SQL去实现该功能&#xff0c;而HIVE SQL并没有PostgreSQL那样例如通过函数to_char((to_date(202550, YYYWW) - INTERVAL 5 weeks…...

【百日精通 JAVA | SQL篇 | 第一篇】初识数据库

一、数据库是什么&#xff1f; 数据库是一类软件&#xff0c;数据库的作用用于管理系统(这是一款成品软件&#xff0c;内部应用了很多数据结构)。 二、数据库分为两大类 1.关系型数据库 对于数据的要求比较严格 通常是以表格的方式来组织数据的。(和Excel差不多) 典型代表…...

大数据Spark(五十六):Spark生态模块与运行模式

文章目录 Spark生态模块与运行模式 一、Spark生态模块 二、Spark运行模式 Spark生态模块与运行模式 一、Spark生态模块 Spark 生态模块包括&#xff1a;SparkCore、SparkSQL、SparkStreaming、StructuredStreaming、MLlib 和 GraphX。与 Hadoop 相关的整个技术生态如下所示…...

Postman 7.3.5 旧版下载指南(Win64)及注意事项

Postman-win64-7.3.5-Setup 是 Postman 的一个旧版本&#xff08;2019年发布&#xff0c;适用于 Windows 64位系统&#xff09;。以下是相关信息和建议&#xff1a; 1. Postman 7.3.5 版本说明 功能&#xff1a;用于 API 开发、测试和协作。 系统要求&#xff1a;Windows 64位…...

人工智能在自然语言处理中的应用:从理论到实践的探索

自然语言处理&#xff08;Natural Language Processing&#xff0c;NLP&#xff09;一直是人工智能领域的重要研究方向。随着深度学习技术的飞速发展&#xff0c;NLP在近年来取得了突破性进展&#xff0c;从文本生成到机器翻译&#xff0c;从情感分析到智能问答&#xff0c;自然…...

Gossip协议:分布式系统中的“八卦”传播艺术

目录 一、 什么是Gossip协议&#xff1f;二、 Gossip协议的应用 &#x1f4a1;三、 Gossip协议消息传播模式详解 &#x1f4da;四、 Gossip协议的优缺点五、 总结&#xff1a; &#x1f31f;我的其他文章也讲解的比较有趣&#x1f601;&#xff0c;如果喜欢博主的讲解方式&…...

Oracle初识:登录方法、导入dmp文件

目录 一、登录方法 以sys系统管理员的身份登录 &#xff0c;无需账户和密码 以账户密码的用户身份登录 二、导入dmp文件 方法一&#xff1a;PLSQL导入dmp文件 一、登录方法 Oracle的登录方法有两种。 以sys系统管理员的身份登录 &#xff0c;无需账户和密码 sqlplus / a…...

微服务架构中的精妙设计:环境和工程搭建

一.前期准备 1.1开发环境安装 Oracle从JDK9开始每半年发布⼀个新版本, 新版本发布后, ⽼版本就不再进⾏维护. 但是会有⼏个⻓期维护的版本. ⽬前⻓期维护的版本有: JDK8, JDK11, JDK17, JDK21 在 JDK版本的选择上&#xff0c;尽量选择⻓期维护的版本. 为什么选择JDK17? S…...

【Yolov8部署】 VS2019+opencv-dnn CPU环境下部署目标检测模型

文章目录 前言一、导出yolov8模型为onnx文件二、VS2019配置及opencv环境配置三、opencv部署总结 前言 本文主要研究场景为工业场景下&#xff0c;在工控机与工业相机环境中运行的视觉缺陷检测系统&#xff0c;因此本文主要目的为实现c环境下&#xff0c;将yolov8已训练好的检测…...

【嵌入式学习3】零散知识点

目录 1、systemctl命令 2、软链接和硬链接 软链接&#xff1a;类似快捷方式 硬链接 3、网络配置 域名解析 固定ip 为什么要固定ip&#xff1f; 如何固定&#xff1f; 4、网络请求与下载 5、端口&#xff08;物理/虚拟&#xff09; 端口分类&#xff1a; 端口管理与…...