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

Rust使用Cargo构建项目

文章目录

  • 你好,Cargo!
    • 验证Cargo安装
    • 使用Cargo创建项目
      • 新建项目
      • 配置文件解析
      • 默认代码结构
    • Cargo工作流
      • 常用命令速查表
      • 详细使用说明
        • 1. 编译项目
        • 2. 运行程序
        • 3.快速检查
        • 4. 发布版本构建
    • Cargo的设计哲学
      • 约定优于配置
      • 工程化优势
    • 开发建议
      • 1. 新项目初始化​
      • 2. 现有项目迁移​
      • 3. 依赖管理实践
    • 总结

你好,Cargo!

Rust小蟹蟹

Cargo是Rust的构建系统和包管理器。绝大多数Rust开发者使用这个工具管理项目,因为它能自动化处理诸多任务:代码编译、依赖库下载、依赖构建等(代码所需的库文件称为​依赖​)。

即使是简单的"Hello, world!"项目(无依赖),使用Cargo也能获得规范的工程结构。随着项目复杂度提升,Cargo在依赖管理方面的优势将愈发明显。

验证Cargo安装

Cargo会随Rust官方安装包自动安装。验证是否安装成功:

$ cargo --version

若显示版本号(如cargo 1.86.0 (adf9b6ad1 2025-02-28))则表示安装正常。

使用Cargo创建项目

新建项目

在项目目录中执行:

$ cargo new hello_cargo

$ cd hello_cargo

该命令生成以下工程结构:

hello_cargo/├── Cargo.toml    # 项目配置文件└── src/└── main.rs   # 入口文件

同时自动初始化Git仓库(若当前不在Git仓库中),生成.gitignore文件。

提示:使用cargo new --vcs=git强制生成Git仓库,或–vcs=none跳过版本控制

配置文件解析

Cargo.toml​ 文件内容示例:

[package]
name = "hello_cargo"  # 项目名称
version = "0.1.0"     # 版本号
edition = "2024"      # Rust版本[dependencies]        # 依赖声明区
  • 使用TOML格式编写配置

  • edition字段指定Rust版本(详见附录E)

  • 依赖将在后续章节中添加

默认代码结构

自动生成的​src/main.rs​包含经典Hello World:

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

Cargo强制约定源代码必须位于src目录,顶层目录存放配置文件、文档等非代码资源。

Cargo工作流

常用命令速查表

命令作用输出路径
cargo build编译调试版本target/debug/
cargo run编译并运行自动选择最新编译结果
cargo check快速语法检查(不生成二进制)
cargo build --release编译优化版本target/release/

详细使用说明

1. 编译项目
$ cargo build
  • 生成调试用可执行文件:target/debug/hello_cargo(Windows为.exe)

  • 首次编译生成Cargo.lock文件(自动跟踪依赖版本)

2. 运行程序
$ ./target/debug/hello_cargo  # 直接运行$ cargo run                   # 编译后自动运行
  • cargo run会智能判断是否需要重新编译
    运行效果如下图:
    运行效果
3.快速检查
$ cargo check
  • 检查编译错误但不生成二进制文件

  • 速度比完整编译快3-5倍,适合开发时实时验证

4. 发布版本构建

当项目需要部署时,使用优化编译:

$ cargo build --release
  • 生成的可执行文件位于target/release/

  • 启用编译器优化(运行更快,编译更慢)

  • 适合性能测试和最终发布

Cargo的设计哲学

约定优于配置

  • 强制源代码目录结构

  • 标准化配置文件格式

  • 跨平台命令一致性(Linux/macOS/Windows命令相同)

工程化优势

随着项目发展,Cargo的价值体现在:

依赖管理​:自动处理嵌套依赖

工作区支持​:管理多crate项目

构建缓存​:增量编译加速开发

元数据管理​:通过Cargo.toml声明项目属性

开发建议

1. 新项目初始化​

总是使用cargo new创建标准工程结构

2. 现有项目迁移​

手动创建src目录和Cargo.toml,或运行:

$ cargo init

3. 依赖管理实践

  • 添加依赖:直接编辑Cargo.toml的[dependencies]

  • 更新依赖:cargo update

  • 清除缓存:cargo clean

总结

  • Cargo核心功能:构建系统 + 包管理器

  • 使用cargo new创建规范项目

  • 通过build/run/check管理开发流程

  • 区分调试构建与发布构建

  • 理解Cargo的工程化设计理念

http://www.lryc.cn/news/2391825.html

相关文章:

  • Python训练营打卡Day39
  • UE5蓝图中播放背景音乐和使用代码播放声音
  • AI 赋能数据可视化:漏斗图制作的创新攻略
  • 用 Python 模拟下雨效果
  • C#对象集合去重的一种方式
  • 【LangChain】
  • Java 面试实录:从Spring到微服务的技术探讨
  • 在ROS2(humble)+Gazebo+rqt下,实时显示仿真无人机的相机图像
  • github双重认证怎么做
  • 数据的类型——认识你的数据
  • DeepSeek与AI提示语设计的全面指南
  • Kafka KRaft + SSL + SASL/PLAIN 部署文档
  • Codeforces Round 1027 (Div. 3)
  • 动态内容加载时,爬虫应如何处理?
  • 第五十二节:增强现实基础-简单 AR 应用实现
  • 前端高频面试题1:HTML/CSS/浏览器/计算机网络
  • LLaMaFactory 微调QwenCoder模型
  • Git全流程操作指南
  • 【最新版】Arduino IDE的安装入门Demo
  • 不起火,不爆炸,高速摄像机、数字图像相关DIC技术在动力电池新国标安全性能测试中的应用
  • thinkadmin中使用layui日期选择器,数据库存储时间戳
  • WSL中ubuntu通过Windows带代理访问github
  • RISC-V特权模式及切换
  • Python爬虫实战:研究Tornado框架相关技术
  • 【深度学习】11. Transformer解析: Self-Attention、ELMo、Bert、GPT
  • Ubuntu实现和主机的复制粘贴 VMware-Tools(open-vm-tools)
  • 4060显卡什么水平 4060显卡参数介绍
  • Kafka Producer 如何实现Exactly Once消息传递语义
  • 通过ansible playbook创建azure 资源
  • C++双线程交替打印奇偶数(活泼版)