1. 什么是cargo
Cargo是Rust的官方包管理器和构建工具。它负责下载依赖项,编译代码并构建可执行文件。
2. cargo的主要功能
cargo的主要功能包括:
- 构建和运行项目
- 运行测试
- 管理项目依赖关系
- 发布包到crates.io
3. 如何安装cargo
如果您已经安装了Rust,那么您应该已经安装了cargo。您可以通过在命令行中运行cargo --version来检查是否已经安装了cargo。
如果您还没有安装Rust,您可以通过访问www.rust-lang.org/tools/insta…来安装Rust和cargo。
4.cargo如何构建和运行项目
要使用Cargo创建新项目,请在任何操作系统上运行以下命令:
$ cargo new hello_cargo
$ cd hello_cargo
第一个命令创建了一个名为hello_cargo的新目录和项目。
要运行项目示例,可以使用以下命令:
cargo run
name_of_example
其中name_of_example是基本文件名(不带.rs)。要在发布模式下运行它:
cargo run --release name_of_example
要将参数传递给示例:
cargo run name_of_example -- arguments go here
cargo run会自动构建(或重新构建)程序,如果它已过期。
5.cargo如何运行测试
使用cargo运行测试,您需要在项目中编写测试代码。在Rust中,测试通常位于与源代码相同的文件中,并使用#[test]属性进行标记。
例如,下面是一个简单的测试用例,它测试了add函数的功能:
fn add(a: i32, b: i32) -> i32 {
a + b
}
#[test]
fn test_add() {
assert_eq!(add(1, 2), 3);
}
复制代码
要运行测试,您可以在项目根目录下运行cargo test命令。这将编译并运行项目中的所有测试。
例如,对于上面的示例,运行cargo test命令将输出以下内容:
$ cargo test
Compiling myproject v0.1.0 (/myproject)
Finished test [unoptimized + debuginfo] target(s) in 0.61s
Running target/debug/deps/myproject-abc123
running 1 test
test test_add ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests myproject
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
6.如何管理项目依赖关系
可以在Cargo.toml文件中指定项目的依赖项。Cargo默认配置为从crates.io查找依赖项。在这种情况下,只需要名称和版本字符串。例如:
[dependencies]
time = "0.1.12"
字符串"0.1.12"是一个版本要求。尽管它看起来像time crate的特定版本,但它实际上指定了一系列版本,并允许SemVer兼容更新。
您还可以使用特殊运算符进一步调整选择兼容版本的逻辑,尽管大多数情况下不需要这样做。
7.发布包到crates.io
要使用cargo将包发布到crates.io,您需要遵循以下步骤:
- 在
Cargo.toml文件中指定包的名称、版本和作者等信息。例如:
[package]
name = "mylibrary"
version = "0.1.0"
authors = ["Your Name <you@example.com>"]
edition = "2018"
- 确保您的代码已经通过了测试,并且文档完整。
- 在命令行中运行
cargo login命令,并根据提示输入您的crates.io API token。 - 在命令行中运行
cargo publish命令来发布包。
例如,对于上面的示例,运行cargo publish命令将输出以下内容:
$ cargo publish
Updating crates.io index
Packaging mylibrary v0.1.0 (/mylibrary)
Verifying mylibrary v0.1.0 (/mylibrary)
Compiling mylibrary v0.1.0 (/mylibrary/target/package/mylibrary-0.1.0)
Finished dev [unoptimized + debuginfo] target(s) in 0.61s
Uploading mylibrary v0.1.0 (/mylibrary)
要运行项目,您可以在项目根目录下运行cargo run命令。这将构建并运行项目。
8. cargo的扩展功能
除了上述基本功能外,cargo还提供了许多扩展功能,如:
- 支持自定义命令
- 支持工作空间
- 支持配置文件覆盖
cargo是Rust开发中不可或缺的工具。它提供了强大而灵活的功能,能够帮助开发人员更快地构建和管理Rust项目。from刘金,转载请注明原文链接。感谢!