【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包更容易使用的约定。
相关推荐
开心就好20251 天前
iOS App 加固方法的实际应用,安全不再只是源码问题
后端
冒泡的肥皂1 天前
AI小应用分享
人工智能·后端
阿虎儿1 天前
本地部署docker完整版minIO镜像
后端
222you1 天前
线程的常用方法
java·开发语言
亚当1 天前
SpringBoot中使用MyBatis入门笔记
后端
云栖梦泽1 天前
易语言界面美化与组件扩展
开发语言
catchadmin1 天前
PHP 值对象实战指南:避免原始类型偏执
android·开发语言·php
诺斯贝克1 天前
Unable to create converter for xxx.NetworkResponse<Auth> for method AuthService
前端·后端
Trouville011 天前
Python中encode和decode的用法详解
开发语言·python
用户69371750013841 天前
29.Kotlin 类型系统:智能转换:类型检查 (is) 与类型转换 (as)
android·后端·kotlin