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

news2025/4/2 5:22:02

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 高手! 🦀🚀

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

零基础使用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架构的核心思想是将输入数据分配给不同的专家子模型,然后将所有子模型的输出进行合并,以生成最终结果。这种分配可以根据输入数据的特征进行动态调整,确保每个专家处理其最擅长的数据类型或任务方面,从而实…

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

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

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

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

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

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

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

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

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

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

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

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

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

实现步骤 步骤一:使用pythonfaker随机生成测试数据 在python中开发脚本,随机生成所需要的数据。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(传输控制协议) TCP 是一种面向连接的、可靠的、基于字节流的传输层通信协议。它的主要特点包括: 面向连接:在传输数据之前,需要通过“三次握手”建立连接;传输结束后,通过“四次挥手”断开…

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

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

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

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

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

目录 一、 什么是Gossip协议?二、 Gossip协议的应用 💡三、 Gossip协议消息传播模式详解 📚四、 Gossip协议的优缺点五、 总结: 🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式&…

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

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

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

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

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

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

3.30学习总结 Java包装类+高精度算法+查找算法

包装类: 基本数据类型对应的引用数据类型。 基本数据类型:在内存中记录的是真实的值。 八种包装类的父类都是Object类。 对象之间不能直接进行计算。 JDK5之后可以把int和integer看成一个东西,因为会进行内部优化。自动装箱和自动拆箱。 …