1.4 Hello Cargo
前言:
ps:第一章前三节的笔记由于作用不大,忽略。
• 第一节:简介
• 第二节:安装rust
• 第三节:Hello World
Rustc
• Rustc 是 Rust 编译器的缩写,是 Rust 语言的核心工具之一。
• 虽然 Rust 语言和 Rustc 编译器都有优秀的性能和内存安全特性,但是在处理大型项目时,大型项目可能会产生复杂的依赖关系和代码结构,这可能会影响 Rustc 编译器的性能。在 Rustc 编译器的工作方式中,代码的类型推断和 borrow checker 等功能需要进行复杂的计算,这可能会导致编译时间比较长。此外,Rustc 编译器的错误信息和调试信息等也比较详细,这也会增加编译时间和输出文件的大小。
• 因此对于一些比较大的项目,我们需要使用其他的工具,这些工具就叫cargo。
Cargo
• Corgo是Rust的构建系统和包管理工具:
-- 能构建代码、下载依赖的库、构建这些库...
• 安装Rust 的时候会自动安装Cargo
测试cargo是否正常安装的方法如下:
cargo --version
//查询cargo版本,如果cargo正常安装,会弹出cargo版本信息

使用Cargo创建项目
cargo new hello_cargo;
//创建一个cargo项目
//cargo new 项目名;

会创建一个新的目录:hello_cargo
• Cargo.toml
-- Cargo的配置模式
• src目录
-- main.rs
• 初始化了一个新的 Git 仓库: .gifignore
-- 可以使用其它的VCS或不使用VCS:cargo new的时候使用--vcs这个flag
Cargo.toml

• [package] 区域标题,下方内容是用来配置package包的
-- name:项目名
-- version:项目版本
-- authors:项目作者
-- edition: 使用的Rust版本
• [dependencies],另一个区域的开始,它会列出项目的依赖项
• 在Rust里,代码的包被称作crate
scr/main.rs
• cargo生成的mcin.rs在src目录下
• Cargo.foml在项日顶层下
• 源代码都应该在src目录下
• 顶层目录可以放置:README、许可信息、配置文件和其它与程序源码无关的文件
• 如果创建项目时没有使用cargo,也可以把项目转化为使用cargo:
-- 把源代码文件移到src下
-- 创建Cargo.toml并填写相应的配置
构建Cargo项目
cargobuild
• cargo build
-- 创建可执行文件:target/debug/hello_cargo(Linux)或target\debug \hello_cargo.exe(Windows)
-- 运行可执行文件:./target/debug/hello_cargo或.target\debug\hello_cargo.exe(Windows
• 第一次运行 corgo build 会在顶层目录生成 cargo.lock 文件
-- 该文件负责追踪项目依赖的精确版本
-- 不需要手动修改该文件(宇宙毁灭了也不要手改!)
cargo run
• Cargo run:编译代码+执行结果
如果之前编译成功过,并且源码没有改变,那么就会直接运行二进制文件
•

cargo check
• cargo check:检查代码,确保能通过编译,但是不产生任何可执行文件
• cargo check要比 cargo build 快得多
-- 编写代码的时候可以连续反复的使用 cargo check检查代码,提高效率
为发布构建
• cargo build --release
-- 编译时会进行优化,代码会运行的更快,但是编译时间更长
会在 target/release 而不是target/debug生成可执行文件

• 两种配置:
-- target/debug用于开发
-- target/release用于正式发布