【Rust 精进之路之第2篇-初体验】安装、配置与 Hello Cargo:踏出 Rust 开发第一步

系列: Rust 精进之路:构建可靠、高效软件的底层逻辑
**作者:**码觉客
发布日期: 2025-04-20

引言:磨刀不误砍柴工,装备先行!

在上一篇文章中,我们一起探索了 Rust 诞生的缘由,理解了它为何能承诺给我们一个既安全又高性能的编程世界。相信你已经对 Rust 的潜力充满了期待,迫不及待想要亲手敲下第一行 Rust 代码了吧?

别急,正所谓“磨刀不误砍柴工”。在正式开始我们的 Rust 编程之旅前,我们需要先准备好一套称手的“兵器”——也就是安装 Rust 开发环境,并配置好能让我们事半功倍的编辑器。这一步至关重要,一个顺畅的开发环境能极大提升我们学习和开发的幸福感。

这篇文章,就是你的“新手装备指南”。我们将手把手带你完成 Rust 的安装,推荐并配置一个强大的代码编辑器,然后创建并运行你的第一个 Rust 程序——经典的 “Hello, world!”。更重要的是,我们还会认识 Rust 生态系统的“大管家”——Cargo,它是你未来项目中不可或缺的得力助手。

准备好了吗?让我们一起动手,为探索 Rust 的奇妙世界打下坚实的基础!

一、神兵利器:安装 Rust 工具链管理器 rustup

安装 Rust 的方式有很多种,但官方强烈推荐使用 rustup 这个工具。把它想象成你的 Rust “武器库管理员”,它不仅能帮你轻松安装 Rust 编译器 (rustc)、包管理器 (cargo)、标准库等核心组件,还能让你方便地管理不同的 Rust 版本(比如稳定版、测试版、开发版),以及安装额外的工具链组件(比如用于交叉编译的目标平台支持)。

为什么一定要用 rustup

  • 省心省力: 一条命令搞定所有核心工具的安装和配置。
  • 版本管理: 轻松切换和更新 Rust 版本,保持与时俱进。
  • 组件管理: 按需安装额外的编译目标或工具(如 clippy 代码检查器、rustfmt 格式化工具)。
  • 跨平台一致性: 无论你在 Windows, macOS, 还是 Linux 上,安装和管理方式都基本一致。

安装步骤:

  1. 打开你的终端(Terminal)或命令提示符(Command Prompt)。

  2. 访问 Rust 官方网站的安装页面: https://www.rust-lang.org/tools/install

  3. 复制并执行页面上提供的安装命令。

    • 对于 macOS 和 Linux 用户,通常是类似这样的命令 (请以官网为准):
      curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
      
    • 对于 Windows 用户,官网会提供一个 .exe 下载链接,下载后运行即可。安装过程中,通常会推荐你安装 Visual Studio C++ build tools,这是编译 Rust 代码所必需的,请按照提示进行安装。
  4. 按照安装程序的提示进行操作。 通常直接选择默认选项(选项 1)即可。安装程序会自动配置好你的系统环境变量(PATH)。

  5. 安装完成后,根据提示重新打开一个新的终端窗口,或者运行提示中的命令来使环境变量生效。

  6. 验证安装: 在新的终端窗口中输入以下命令:

    rustc --version
    cargo --version
    

    如果能看到类似 rustc x.y.z (hash date)cargo x.y.z (hash date) 的输出(版本号可能不同),如下图所示,那么恭喜你,Rust 环境已经成功安装!
    在这里插入图片描述

小提示:

  • rustup 会默认安装 stable(稳定)版本的 Rust。对于学习和大多数开发来说,稳定版是最佳选择。
  • 以后想更新 Rust 到最新稳定版,只需在终端运行 rustup update 即可。

二、利刃出鞘:配置你的代码编辑器 (VS Code + rust-analyzer)

有了 Rust 工具链,我们还需要一个强大的代码编辑器来提升编码体验。虽然理论上你可以用任何文本编辑器写 Rust 代码,但一个配置了良好 Rust 支持的现代编辑器能提供语法高亮、代码补全、实时错误检查、代码跳转、重构等诸多便利功能,极大提高你的开发效率和代码质量。

目前,Visual Studio Code (VS Code) 配合 rust-analyzer 扩展是 Rust 社区最流行、也是官方推荐的组合。

为什么推荐这个组合?

  • VS Code: 免费、开源、跨平台,拥有庞大的扩展生态系统。
  • rust-analyzer: 由 Rust 官方团队维护,提供极其快速和准确的代码分析、补全、错误提示、类型推断显示、代码跳转、重构支持等。它能让你在写代码的时候就感受到 Rust 编译器的“实时反馈”。

配置步骤:

  1. 安装 VS Code: 如果你还没有安装,请前往 VS Code 官网 (https://code.visualstudio.com/) 下载并安装适合你操作系统的版本。
  2. 安装 rust-analyzer 扩展:
    • 打开 VS Code。
    • 点击侧边栏的“扩展”图标(像四个方块的那个)。
    • 在搜索框中输入 rust-analyzer
    • 找到官方发布的 rust-analyzer 扩展 (通常是第一个,发布者显示为 rust-lang)。
    • 点击“安装”按钮。

安装完成后,rust-analyzer 会在后台自动工作。当你打开 Rust 项目(.rs 文件)时,它就会开始分析代码,并提供各种智能提示。你马上就能体验到它的强大之处!

注意: 如果你之前安装过其他的 Rust 扩展(比如旧的 RustyCode),建议禁用或卸载它们,以避免冲突。

三、开工大吉:你的第一个 Rust 项目 “Hello, world!” 与 Cargo 初识

装备齐全,是时候建造我们的第一个“作品”了!在 Rust 的世界里,我们不推荐直接创建一个孤零零的 .rs 文件然后用 rustc 手动编译。标准的做法是使用 Rust 的构建系统和包管理器——Cargo 来创建和管理项目。

Cargo 是什么? 把它想象成你项目的“总工程师”兼“后勤部长”。它负责:

  • 创建项目骨架: 一条命令生成标准的项目目录结构。
  • 构建代码: 调用 rustc 编译器将你的源代码编译成可执行文件或库。
  • 管理依赖: 帮你下载并链接项目所需的第三方库(称为 “crates”)。
  • 运行项目: 方便地编译并执行你的程序。
  • 运行测试: 集成测试框架,方便你编写和运行测试用例。
  • 发布库: 将你写的库发布到 Rust 的中央仓库 crates.io,供他人使用。
  • 还有更多…

总之,Cargo 是 Rust 开发体验的核心部分,它极大地简化了项目的构建、管理和协作。

创建你的第一个项目:

  1. 打开终端。

  2. cd 到你希望存放代码的目录下。

  3. 运行以下命令来创建一个名为 hello_rust 的新项目:

    cargo new hello_rust
    
  4. Cargo 会自动为你生成一个目录结构:

    hello_rust/
    ├── Cargo.toml  # 项目的配置文件(清单文件)
    └── src/        # 源代码目录└── main.rs # 主程序入口文件
    
    • Cargo.toml: 这是 Cargo 的清单 (Manifest) 文件,采用 TOML 格式。它包含了项目的元数据(如项目名称、版本、作者)和依赖列表。现在你可以打开看看,内容很简单,后面我们会详细了解它。把它想象成项目的“身份证”和“配方单”。
    • src/main.rs: 这是项目的源代码根文件。对于一个可执行程序(像我们这个),main.rs 是程序的入口点。
  5. 进入项目目录:

    cd hello_rust
    
  6. 用 VS Code 打开这个项目:
    在终端里输入 code . (注意有个点,表示当前目录) 并回车,VS Code 就会打开 hello_rust 这个文件夹。

  7. 查看 src/main.rs 文件:
    打开 src/main.rs,你会看到 Cargo 已经为我们生成了经典的代码:

    // main 函数是每个可执行 Rust 程序的入口点
    fn main() {// println! 是一个宏 (macro),用于将文本打印到控制台// 注意有个感叹号 "!",这表明它是一个宏调用,而不是普通的函数调用// 我们后面会详细学习宏println!("Hello, world!");
    }
    

    是不是很简单?fn main() 定义了一个名为 main 的函数,它是程序的起点。println!("Hello, world!"); 这行代码调用了 println! 宏,把字符串 “Hello, world!” 输出到屏幕上。

运行你的第一个程序:

现在,激动人心的时刻到了!我们有三种常用的方式来编译和运行这个程序,都在终端的 hello_rust 目录下执行:

  1. cargo build:只编译,不运行

    cargo build
    

    Cargo 会调用 rustc 编译器,将 src/main.rs 编译成可执行文件。

    • 编译成功后,你会在项目根目录下发现一个 target 目录。编译产物默认放在 target/debug/ 目录下(因为是调试构建)。你可以找到一个名为 hello_rust (或 hello_rust.exe 在 Windows 上) 的可执行文件。
    • 你可以直接运行这个文件:在 Linux/macOS 上是 ./target/debug/hello_rust,在 Windows 上是 .\target\debug\hello_rust.exe。你会看到输出 “Hello, world!”。
    • cargo build 适合只需要编译检查或者想手动运行产物的场景。
  2. cargo run:编译并立即运行

    cargo run
    

    这是开发中最常用的命令。它会先执行 cargo build 的过程(如果代码有改动或尚未编译),然后立即运行生成的可执行文件。你会直接在终端看到 “Hello, world!” 的输出。一步到位,非常方便。

  3. cargo check:快速检查代码,不生成可执行文件

    cargo check
    

    这个命令非常有用!它会快速检查你的代码,确保它能够通过编译器的语法和类型检查,但它不会花费时间去实际生成可执行文件

    • 优点: 速度比 cargo buildcargo run 快得多!
    • 用途: 在你编码过程中,可以频繁运行 cargo check 来快速验证代码的正确性,获得即时反馈,就像代码的“拼写检查”一样。

恭喜你!你已经成功安装了 Rust 环境,配置了编辑器,并使用 Cargo 创建、编译、运行了你的第一个 Rust 程序!

四、初窥门径:Cargo 的冰山一角

我们今天只是简单接触了 cargo new, build, run, check 这几个基本命令,但这仅仅是 Cargo 强大功能的冰山一角。在后续的学习中,我们会逐渐解锁 Cargo 的更多技能,比如:

  • 添加和管理第三方库依赖(dependencies
  • 运行单元测试和集成测试(cargo test
  • 生成文档(cargo doc
  • 构建发布版本(cargo build --release
  • 将你的库发布到 crates.io(cargo publish

可以说,掌握 Cargo 是成为一名合格 Rust 开发者的必经之路。

五、常见问题解答 (FAQ)

  • Q1: 我可以不用 rustup,直接去官网下载安装包吗?
    • A: 技术上可以,但强烈不推荐。rustup 提供了无缝的版本管理和组件管理能力,这对于长期开发和跟进 Rust 的快速迭代至关重要。使用 rustup 是社区的最佳实践。
  • Q2: 我不喜欢 VS Code,可以用其他编辑器吗?
    • A: 当然可以!很多流行的编辑器都有不错的 Rust 支持,例如:IntelliJ IDEA (配合 Rust 插件), Sublime Text, Vim/Neovim (配合相应插件), Emacs 等。关键是确保你使用的插件提供了良好的 rust-analyzer 集成或类似的代码分析能力。
  • Q3: cargo buildcargo run 有什么本质区别?
    • A: cargo build 只负责编译源代码生成目标文件(比如可执行文件),然后就结束了。cargo run 则是在 build 的基础上,额外帮你把生成的可执行文件运行起来。你可以认为 cargo run = cargo build + run a.out (简化理解)。
  • Q4: 为什么 println! 后面有个感叹号 !
    • A: 这是 Rust 中 宏 (Macro) 调用的标志。宏有点像“代码的代码”,它能在编译时生成或转换代码。println! 是一个非常常用的宏,用于输出信息到控制台。我们后面会有专门的章节深入学习宏,现在你只需要知道带 ! 的通常是宏调用,用法和函数类似即可。

总结:迈出坚实的第一步

今天,我们完成了从零开始搭建 Rust 开发环境的整个过程:

  1. 使用 rustup 安装了 Rust 工具链。
  2. 配置了 VS Code 和 rust-analyzer,为高效编码做好了准备。
  3. 通过 cargo new 创建了标准的 Rust 项目结构。
  4. 理解并运行了第一个 “Hello, world!” 程序。
  5. 初步认识了强大的构建工具和包管理器 Cargo,并掌握了 build, run, check 三个核心命令。

这看似简单的一步,其实是你 Rust 学习旅程中至关重要的基础。一个顺畅的开发环境和对核心工具的基本了解,将为后续更深入的学习扫清障碍。

现在,你的“装备”已经准备就绪,基本的“操作”也已熟悉。在下一篇文章中,我们将正式开始学习 Rust 的核心语法:变量、数据类型以及它们在 Rust 中独特的“哲学”——可变性与遮蔽。准备好迎接更多有趣的知识吧!

继续前进,探索 Rust 的无限可能!

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

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

相关文章

【深度学习】计算机视觉(17)——ViT理解与应用

文章目录 Embedding1 概念2 Q&A (1)3 Positional Encoding4 Q&A (2) ViT样例及Embedding可视化理解1 简化ViT练习2 CLS Token3 Embedding可视化4 多头注意力可视化 Embedding技术体系结构参考来源 在研究中对特征的编码和…

肖特基二极管详解:原理、作用、应用与选型要点

一、肖特基二极管的基本定义 肖特基二极管(Schottky Diode) 是一种基于金属-半导体结(肖特基势垒)的二极管,其核心特性是低正向压降(Vf≈0.3V)和超快开关速度。 结构特点:阳极采用金…

DeepSeek在数据仓库的10大应用场景

一、智能数据集成与清洗 多源数据整合:DeepSeek能够从多种数据源中提取、转换和加载数据,实现跨系统数据的高效整合。 数据清洗与标准化:通过智能算法自动识别并纠正数据中的错误、不一致性和缺失值,提升数据质量。 二、数据仓…

提示词构成要素对大语言模型跨模态内容生成质量的影响

提示词构成要素对大语言模型跨模态内容生成质量的影响 提示词清晰度、具象性与质量正相关 限定指向性要素优于引导指向性要素 大语言模型生成内容保真度偏差 以讯飞星火大模型为实验平台,选取100名具备技术素养的人员,从提示词分类、构成要素和实践原则归纳出7种提示词组…

BeautifulSoup 库的使用——python爬虫

文章目录 写在前面python 爬虫BeautifulSoup库是什么BeautifulSoup的安装解析器对比BeautifulSoup的使用BeautifulSoup 库中的4种类获取标签获取指定标签获取标签的的子标签获取标签的的父标签(上行遍历)获取标签的兄弟标签(平行遍历)获取注释根据条件查找标签根据CSS选择器查找…

关于MacOS使用Homebrew的详细介绍

Homebrew 是 macOS(和 Linux)上最流行的包管理工具(Package Manager),用于快速安装、更新和管理各种开发工具、命令行程序、开源软件等。它类似于: Ubuntu/Debian 的 aptCentOS/RHEL 的 yumWindows 的 Cho…

最新扣子空间实操指南

一、首先要先获取到内部测试的邀请码, 我们先打开扣子空间官网:https://space.coze.cn/ 输入邀请码后进入该页面: 它这里支持文件上传,扩展里面有很多插件,页支持MCP各种插件. 探索模式有两种,一种是ai自…

ubuntu22.04安装dukto

1.添加源 sudo add-apt-repository ppa:xuzhen666/dukto2.进行更新和安装 sudo apt update sudo apt install dukto3.报错 $ sudo apt install dukto 正在读取软件包列表... 完成 正在分析软件包的依赖关系树... 完成 正在读取状态信息... 完成 您也许需要…

Java编程基础(第四篇:字符串初次介绍)

前言 HelloWorld写的多了,语法熟悉一点了吧,其中有段代码还没介绍,它就是字符串 public class HelloWorld { public static void main(String[] args) { printBaby(); } static void printBaby() { System.out.print("baby"); } } …

安卓手机怎样配置数据加速

利用系统自带功能: 选择网络模式:进入手机 “设置”,找到 “网络” 或 “移动网络” 选项,点击 “高级设置”,选择合适的网络模式,如优先选择 4G 或 5G 网络,以获得更快的速度。开启网络加速功能…

Day3:个人中心页面布局前端项目uniapp壁纸实战

接下来我们来弄一下个人中心页面布局user.vue <template><view class"userLayout"><view class"userInfo"><view class"avatar"><image src"../../static/Kx.jpg" mode"aspectFill"></im…

线性回归之正则化(regularization)

文章目录 机器学习中的"防过拟合神器"&#xff1a;正则化全解析1. 正则化&#xff1a;不只是"规矩"那么简单1.1 鲁棒性案例说明 2. L1正则化&#xff1a;冷酷的特征选择器3. L2正则化&#xff1a;温柔的约束者4. L1 vs L2&#xff1a;兄弟间的较量5. 正则化…

mapbox基础,加载视频到地图

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️raster 栅格图层 api二、🍀加载视频到…

Linux系统的远程终端登录、远程图形桌面访问、 X图形窗口访问

目录 一、配置Ubuntu系统的网络和用户 1、设置虚拟机网络为桥接模式 2.查看当前ip、子网掩码、网关 3.修改配置文件 二、远程终端登录Ubuntu 三、使用XShell远程连接 1、确保SSH服务已启动 2、检查SSH服务状态 3、获取树莓派IP地址 4、Xming安装好之后打开让它在后台…

多模态大语言模型arxiv论文略读(三十一)

From GPT-4 to Gemini and Beyond: Assessing the Landscape of MLLMs on Generalizability, Trustworthiness and Causality through Four Modalities ➡️ 论文标题&#xff1a;From GPT-4 to Gemini and Beyond: Assessing the Landscape of MLLMs on Generalizability, Tr…

基于Matlab求解矩阵电容等效容值

1需求 仿真测试8*10阶举证电容等效容值。 2模型搭建 2.1打开simscape 在打开simulink之后打开simscape库&#xff0c;Simscape库位置如下 2.2搭建模型 在库中寻找需要的元件搭建电路。 2.2.1基本元件 电阻电容电感等基础器件&#xff0c;搭建电路之后需要对其进行幅值&…

【C++】 —— 笔试刷题day_22

一、添加字符 题目解析 这道题&#xff0c;给定两个字符串A和B&#xff0c;字符串A的长度要小于B的长度&#xff1b; 现在我们要对A字符串添加字符&#xff0c;使得A字符串长度等于B字符串的长度&#xff0c;并且要求对应位置的字母尽量相等&#xff0c;然后求出来不相等的字符…

错误: 找不到或无法加载主类 HelloWorld,cmd窗口,java命令,提示

错误: 找不到或无法加载主类 HelloWorld 解决办法 检查classpath是否 .; 开头的

手撕LLM(五):从源码出发,探索多模态VL模型的推理全流程

前面我们分享了关于大语言模型的相关技术&#xff0c;包括前向推理、LoRa挂载、MoE模型、模型预训练等&#xff1b;后续还是会基于MiniMindLM模型继续分享关于大语言模型的SFT指令微调、LoRa微调、基于人类偏好的强化学习微调以及模型蒸馏相关的技术&#xff0c;请大家持续关注…

关于隔离2:ADC芯片

ADC可以称作是模拟芯片领域的明珠。作为一种关键器件&#xff0c;ADC设计难度大&#xff0c;专利墙高&#xff0c;所以国内一直处于追赶的状态。近年来&#xff0c;国产ADC发展极为迅速&#xff0c;逐渐在各项参数上赶上了国际主流水准。 模拟数字转换器ADC连接着现实模拟世界…