【Rust基础入门】Hello Cargo

devtools/2024/10/19 2:21:57/

文章目录

    • 前言
    • Cargo是什么?
    • Cargo的作用
    • 查看cargo版本
    • 使用cargo创建项目
      • Cargo.toml文件
      • cargo build命令
      • cargo run
      • cargo check
      • 为发布构建
    • 总结


前言

在Rust编程中,Cargo扮演着至关重要的角色。它是Rust的包管理器,负责处理许多任务,如构建代码、下载和编译依赖等。本文将介绍Cargo的基本概念和功能,帮助你理解它在Rust编程中的重要性。

Cargo是什么?

Cargo是Rust的包管理器。它的主要任务是管理Rust项目的构建过程,包括代码编译、依赖管理等。Cargo会下载你的Rust包的依赖项,编译你的包,生成可分发的包,并将它们上传到crates.io,这是Rust社区的包注册表。

Cargo的作用

Cargo的主要作用是简化和标准化Rust项目的构建和管理过程。以下是Cargo的一些主要功能:

  • 依赖管理:Cargo可以自动下载和编译你的Rust项目所需的所有依赖。
  • 构建和测试:Cargo提供了一种简单的方式来构建你的代码和运行测试。
  • 生成文档:Cargo可以为你的代码生成文档。
  • 发布:当你准备好发布你的库时,Cargo可以帮助你将其上传到crates.io。

查看cargo版本

使用这个命令即可查看:cargo --verison
在这里插入图片描述

使用cargo创建项目

使用这个命令即可创建:cargo new yourprojectname
在这里插入图片描述
在这里插入图片描述

Cargo.toml文件

Cargo.toml是Rust项目的清单文件,它存储了项目的所有信息。这个文件是用TOML格式编写的,包含了编译包所需的元数据。以下是Cargo.toml的一些主要组成部分:

  • cargo-features:只能用于nightly版本的特性。
  • [package]:定义项目的元信息,如项目名称、版本、开发者等。
  • [dependencies]:项目依赖的包。
  • [dev-dependencies]:用于examples、tests和benchmarks的依赖包。
  • [build-dependencies]:用于构建脚本的依赖包。
  • [target]:平台特定的依赖包。
  • [badges]:用于在注册服务(例如crates.io)上显示项目的一些状态信息¹。
  • [features]:可以用于条件编译。
  • [patch]:推荐使用的依赖覆盖方式。
  • [replace]:不推荐使用的依赖覆盖方式(已弃用)。
  • [profile]:编译器设置和优化。
  • [workspace]:工作空间的定义。

cargo build命令

cargo build命令是生成项目的可执行文件的
在这里插入图片描述
在文件夹里面就会来一个target文件夹,在里面的debug可以找到我们的可执行文件
在这里插入图片描述

cargo run

cargo run会进行编译代码,然后运行可执行文件
在这里插入图片描述

cargo check

cargo check他是检查代码的确保他能编译通过,他不编译代码

为发布构建

cargo build --release他是为我们发布程序时使用的命令

总结

Cargo是Rust编程的重要工具,它简化了许多编程任务,使得开发者可以专注于代码的编写。通过Cargo,我们可以轻松地管理依赖、构建和测试代码、生成文档以及发布库。理解和掌握Cargo的使用,对于Rust编程来说是非常重要的。希望这篇文章能帮助你理解Cargo的基本概念和功能,为你的Rust编程之旅提供帮助。祝你学习愉快!


http://www.ppmy.cn/devtools/57864.html

相关文章

论文辅助笔记:ST-LLM

1 时间嵌入 2 PFA(Partial Frozen Architecture) 3 ST_LLM 3.1 初始化 3.2 forward

three.js实现3D模型任意方向旋转

因为业务需要,我们在公司官网使用Three.js实现了可鼠标拖动任意旋转的3D旋转模型,可是实现之后发现除了Z轴方向都可以任意旋转,但是Z轴方向最多只能旋转180度。找遍全网也没有找到相关的资料来解释错在了哪一步,最终还是在github仓…

vue3+vite搭建第一个cesium项目详细步骤及环境配置(附源码)

文章目录 1.创建vuevite项目2.安装 Cesium2.1 安装cesium2.2 安装vite-plugin-cesium插件(非必选)2.3 新建组件页面map.vue2.4 加载地图 3.完成效果图 1.创建vuevite项目 打开cmd窗口执行以下命令:cesium-vue-app是你的项目名称 npm create…

唤醒知识循环,共筑绿色阅读梦——探索旧书回收小程序的无限可能

在这个信息爆炸的时代,书籍作为知识与智慧的载体,其重要性不言而喻。然而,随着电子阅读的兴起和书籍更新换代的加速,大量旧书被束之高阁,甚至面临被遗弃的命运。这不仅是对宝贵文化资源的浪费,也是对环境保…

vscode 快捷键

Visual Studio Code 快捷键大全(最全)-CSDN博客

C++:申明Declaration与定义Definition的本质与区别

在C中,声明和定义是两个不同的概念。 声明(Declaration) 声明是告诉编译器关于变量、函数等的存在以及它们的类型,但并不提供实际的存储空间或函数体。例如,你可以在程序的不同位置声明一个函数或者类,以…

第一次面试的经历(java开发实习生)

面试官的问题 我想问一下你这边有做过什么项目吗?你方便讲一下你做过的那些项目吗,用了什么技术栈,包括你负责开发的内容是什么?(项目经验)八大基本数据类型是什么?(基础)你说一下…

01 Web基础与HTTP协议

1.1 Web 基础 本章将介绍 Web 基础知识,包括域名的概念、DNS 原理、静态网页和动态网页的相关知识。 1.1.1.域名概述 1.域名的概念 ip地址不易记忆 2.早期使用host文件解析域名 主机名重复主机维护困难 3.DNS 分布式层次式 4.域名空间结构 根域顶级域 组…