【Rust】Cargo介绍

一、Cargo简介

  • Cargo 是Rust语言的包管理工具,它帮助我们管理我们项目的依赖。
  • 做js开发的同学应该了解nodejs的包管理工具npm,Cargo和npm做的事情是一样的。
  • C和C++的同学可能对这个就比较陌生了,C/C++语言没有统一的依赖管理工具,各个项目用的依赖管理工具不仅相同。有用Cmake的,也有用GN的。

二、Cargo基本用法

  • cargo new hello_world 创建新项目。
  • cargo new hello_world --bin 创建二进制程序新项目。
  • cargo new hello_world --lib 创建库程序新项目。
  • cargo build编译,默认编译debug程序。
  • cargo run编译和运行。
  • cargo build --release构建发布程序,做了优化,编译较慢

三、为什么要有Cargo

  • 在Rust语言中一个库或者一个可执行文件,被称为crate。Crate是通过rustc工具编译出来的。
    rustc hello.rs可以直接通过rustc编译rust文件。
  • 如果所有文件的编译都使用rustc来编译,文件比较多的时候,这个编译命令就会越来越多,并且如果文件依赖比较复杂,那么编译命令就会变得更加复杂。在C/C++里面可以理解成直接使用gcc/g++命令来编译整个项目。
  • 所以为了更加方便的管理项目之间的依赖,就有了Cargo工具。

四、Cargo做了什么

  • 为了达成上述目标,Cargo做了四件事情:
    • 引入了两个元数据文件,里面包含一些包信息。
    • 获取并构建包的依赖项。
    • 使用正确的参数用rustc或者其他构建工具来构建包。
    • 提供使得rust包更容易使用的约定。
相关推荐
Apifox2 分钟前
Apifox 9 月更新|CLI 能力升级、GitLab 私有化部署接入与产品体验优化
前端·后端·测试
小小龙学IT6 分钟前
Go 泛型(Generics)深度解析:从类型参数到生产实践
开发语言·数据库·golang
鱼弦13 分钟前
Agent智能体 vs 传统运维:职业天花板的3倍差距?
后端
暗夜行者之光13 分钟前
LangGraph 实战:用 LangSmith 可视化追踪 AI 智能体执行轨迹
后端
hold?fish:palm14 分钟前
45 二叉树的右视图
开发语言·c++·算法
MI_farmer17 分钟前
Anaconda 安装在 D 盘但虚拟环境跑到 C 盘,以及 Conda PermissionError: WinError 5 的解决方法
c语言·开发语言·conda
鱼弦19 分钟前
Agent 的工具选择策略:从硬编码到动态决策
后端
Lost of 程序猿22 分钟前
建造者模式实战:告别“十参数构造函数“的数据导出任务
后端·设计模式·c#·asp.net
SensorFlow24 分钟前
ClickHouse 埋点事件表:先验证时间与重复,再谈漏斗看板
后端
“AI国潮设计-小江”24 分钟前
[AIGC实战] 基于Stable Diffusion的潮汕非遗IP自动化生成工作流(附Python批量处理脚本)
开发语言·人工智能·python·prompt·aigc