【Rust 入门学习】1.2 使用 Cargo 构建 Rust 项目

cargo 介绍

Cargo 是 Rust 的构建系统和包管理器,它会构建代码、下载代码所依赖的库以及构建这些库。

Cargo 一般随 Rust 一起安装,如果是通过其他方式安装,需要检查是否可用。

使用 Cargo 创建项目

现在使用 Cargo 创建一个新的 helloworld 项目,对比一下与之前的 helloworld 有什么不一样的地方。

在项目文件夹下执行:

cd ~/projects
cargo new hello_cargo
cd hello_cargo

这样就创建了一个名为 hello_cargo 的新目录,我们将项目命名为hello_cargo,Cargo 在同名目录中创建其文件。

进入hello_cargo目录并列出文件。就会看到 Cargo 为我们生成了两个文件和一个目录:一个 Cargo.toml 文件和一个 src 目录,其中包含一个 main.rs 文件。

它还初始化了一个新的 Git 存储库以及一个 .gitignore 文件。cargo new 如果您在现有的 Git 存储库中运行,则不会生成 Git 文件,可以使用cargo new --vcs=git.

Cargo.toml 是清单文件,该文件采用TOMLTom’s Obvious, Minimal Language)格式,这是 Cargo 的配置格式。

现在打开src/main.rs看看:

文件名:src/main.rs

fn main() {
    println!("Hello, world!");
}

Cargo 生成了一个“Hello, world!” 为您准备的程序,与我们之前的项目与 Cargo 生成的项目的不同之处在于 Cargo 将代码放在了src 目录中,而我们在顶层目录中有一个Cargo.toml配置文件。

Cargo 希望源文件位于src目录中,顶级项目目录仅用于 README 文件、许可证信息、配置文件以及与代码无关的任何其他内容。

编译和运行项目

编译

$ cargo build
   Compiling hello_cargo v0.1.0 (/home/mshing/projects/hello_cargo)
    Finished dev [unoptimized + debuginfo] target(s) in 1.38s

运行

$ ./target/debug/hello_cargo
Hello, world!

这样运行方式和之前一样,只是存放路径不一致。

第一次运行cargo build也会导致 Cargo 在顶层创建一个新文件:Cargo.lock。该文件跟踪项目中依赖项的确切版本,建议手动修改该文件。

进阶

我们刚刚构建了一个项目cargo build并使用 运行它 ./target/debug/hello_cargo,但我们也可以使用它cargo run来编译代码,然后在一个命令中运行生成的可执行文件

$ cargo run
    Finished dev [unoptimized + debuginfo] target(s) in 0.01s
     Running `target/debug/hello_cargo`
Hello, world!

请注意,这次我们没有看到表明 Cargo 正在编译的输出 hello_cargo

Cargo 发现文件没有改变,所以它只运行二进制文件。

如果修改了源代码,Cargo 会重新编译然后再运行:

$ cargo run
   Compiling hello_cargo v0.1.0 (/home/mshing/projects/hello_cargo)
    Finished dev [unoptimized + debuginfo] target(s) in 0.33s
     Running `target/debug/hello_cargo`
Hello, 中国!

Cargo 还提供了一个名为cargo check. 此命令快速检查代码以确保它可以编译但不会生成可执行文件:

$ cargo check
    Checking hello_cargo v0.1.0 (/home/mshing/projects/hello_cargo)
    Finished dev [unoptimized + debuginfo] target(s) in 0.09s

有关 Cargo 的更多信息,请查看其文档

相关文章

发表回复

您的电子邮箱地址不会被公开。