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

Cargo Rust 的包管理器

Cargo->Rust 的包管理器

  • Cargi简介
    • Cargo 的主要功能
        • 1. 创建项目
        • 2. 管理依赖
        • 3. 构建项目
        • 4. 运行项目
        • 5. 测试代码
        • 6. 检查代码
        • 7. 生成文档
        • 8. 发布和分享包
    • Cargo 的核心文件
        • 1. `Cargo.toml`
        • 2. `Cargo.lock`
      • **Cargo 的生态系统**
    • 常用命令总结
      • Hello, Cargo! 示例

Cargi简介

Cargo 是 Rust 的包管理器和构建工具,类似于其他语言中的工具,如 JavaScript 的 npm、Python 的 pip 或 Java的 Maven 等。它是 Rust 生态系统的重要组成部分,默认随 Rust 编译器一起安装。Cargo 简化了依赖管理、项目构建、测试、文档生成等开发工作。

Cargo 的主要功能

查看是否安装了Cargo,一般Cargo是和Rust一起安装的。在命令窗口输入

cargo --version

在这里插入图片描述
能正常输出版本号,表示已经安装成功。

1. 创建项目

Cargo 可以快速生成一个新项目的基本结构,包括必要的配置文件和目录:

cargo new project_name

这会创建一个包含以下内容的项目:

project_name/
├── Cargo.toml   # 项目配置文件
├── src/└── main.rs  # 主程序文件
2. 管理依赖

Cargo 使用 Cargo.toml 文件来管理项目依赖,类似于 Python 的 requirements.txt 或 Node.js 的 package.json

[package] -- 是一个区域标题,表示下方内容是配置package的
name = "hello_cargo" -- 项目名称
version = "0.1.0" -- 项目版本
authors= ["Venus"] -- 项目作者
edition = "2021" -- 使用的Rust的版本[dependencies] -- 会列出项目使用的依赖项,在Rust中,代码的包叫做crate

Cargo.toml 中添加依赖后,运行以下命令会下载并编译依赖:

cargo build

依赖示例 (Cargo.toml):

[dependencies]
serde = "1.0"       # 添加 serde 库
tokio = { version = "1.0", features = ["full"] }  # 添加 tokio 库并启用特性
3. 构建项目

Cargo 自动管理项目的构建过程,包括编译源代码和依赖库。运行以下命令即可构建项目:

cargo build

它会在 target/debug/ 目录下生成调试版本的可执行文件。可以通过 --release 构建优化后的生产版本:

cargo build --release

使用cargo build 之后

  • 创建了可执行文件,在target\debug\hello_cargo.exe
  • 第一次运行cargo build会在顶层目录生成cargo.lock文件,该文件负责追踪项目依赖的精确版本,不要手动修改该文件。
4. 运行项目

无需手动调用编译器,直接使用以下命令运行项目:

cargo run

该命令cargo run ,编译代码 + 执行结果。

  • 如果已经编译成功了,并且源代码没有进行修改,则会直接运行二进制文件。
    在这里插入图片描述
5. 测试代码

Rust 提供内置的单元测试支持。使用 Cargo 可以轻松运行测试:

cargo test
6. 检查代码

Cargo支持检查代码。

cargo check
  • cargo check 检查代码,确保能通过编译,但是不产生任何可执行文件;
  • cargo build区别是,比cargo build要快很多。
  • 编写代码的时候,可反复使用进行调试。
7. 生成文档

Rust 支持自动文档生成工具 rustdoc,并集成到 Cargo 中。运行以下命令可以生成 HTML 文档:

cargo doc --open
8. 发布和分享包

Cargo 支持将项目发布到 Rust 的官方包管理平台 Crates.io。发布时,执行以下命令:

cargo publish

Cargo 的核心文件

1. Cargo.toml

这是项目的配置文件,使用 TOML 格式,用于定义项目的元信息、依赖、构建配置等。

示例:

[package]
name = "my_project"
version = "0.1.0"
authors = ["Your Name <email@example.com>"]
edition = "2021"[dependencies]
serde = "1.0"  # 添加依赖库
2. Cargo.lock

此文件记录了所有依赖库的精确版本,确保项目的构建环境一致。通常无需手动修改。


Cargo 的生态系统

  • Crates.io:Rust 的开源包托管平台。开发者可以搜索、下载、发布 Rust 包。
  • Cargo Workspaces:支持管理多个相关的子项目,适合大型项目。

常用命令总结

命令功能
cargo new <name>创建新项目
cargo init初始化现有目录为 Cargo 项目
cargo build构建项目
cargo run构建并运行项目
cargo test运行测试
cargo doc --open生成并打开文档
cargo update更新依赖到最新允许版本
cargo publish发布项目到 Crates.io
cargo check检查代码

Hello, Cargo! 示例

创建一个项目并运行:

cargo new hello_cargo
cd hello_cargo
cargo run

输出:

Hello, world!

通过 Cargo,Rust 的开发变得更高效、更组织化,特别是对于依赖管理和构建流程,极大地提升了开发体验。

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

相关文章:

  • 【Rust 编程语言工具】rustup-init.exe 安装与使用指南
  • 集群聊天服务器(12)nginx负载均衡器
  • 数据挖掘英语及概念
  • springboot第82集:消息队列kafka,kafka-map
  • sql server查看当前正在执行的sql
  • STM32设计学生宿舍监测控制系统-分享
  • HAproxy 详解
  • 间接采购管理:主要挑战与实战策略
  • 2411rust,正与整128
  • 将 HTML 转换为 JSX:JSX 和 JSX 规则
  • 将 FastAPI 部署到生产服务器(一套 全)
  • 题解 洛谷 Luogu P1873 [COCI 2011/2012 #5] EKO / 砍树 二分答案 C/C++
  • SpringCloud SaToken整合微服务 集成Redis 网关路由权限拦截 服务间内部调用鉴权
  • Oracle ADB 导入 BANK_GRAPH 的学习数据
  • 优化 MFC CGridCtrl 的表格布局与功能
  • koa-body 的详细使用文档
  • 信息系统与互联网中的安全、隐私及伦理问题
  • Java安全—log4j日志FastJson序列化JNDI注入
  • 【STM32开发笔记】移植AI框架TensorFlow到STM32单片机【DSP指令加速篇】
  • Python中如何判断一串文本是不是数字
  • 基于YOLOv8深度学习的智慧农业山羊行为检测系统研究与实现(PyQt5界面+数据集+训练代码)
  • Redis环境部署(主从模式、哨兵模式、集群模式)
  • 高阶C语言之六:程序环境和预处理
  • Vue 3 国际化 (i18n) 最佳实践指南
  • Acme PHP - Let‘s Encrypt
  • 获取DOM 节点的四大方式
  • ROS2 Humble 机器人建模和Gazebo仿真
  • docker容器镜像的制作、使用以及传递
  • 一种由于吸入硅酸盐粉尘而引起的肺部疾病:pneumonoultramicroscopicsilicovolcanoconiosis
  • 百度AI人脸检测与对比