Rust编程:入门、实战与进阶
上QQ阅读APP看书,第一时间看更新

1.4 Hello Cargo

在体验了手工编译和运行Rust程序之后,下面介绍Rust提供的构建工具和包管理器Cargo。使用Cargo管理Rust项目,特别是编写复杂的Rust程序,可以很方便地构建代码、下载依赖库并编译这些库。在实际项目开发中,建议一律使用Cargo来管理Rust项目。Cargo的常用命令如表1-1所示。

表1-1 Cargo常用命令

015-01

如果想查看cargo的帮助信息,可以在终端命令行窗口使用cargo -h命令。如果对某个命令不甚熟悉,可以使用cargo help <command>显示某个命令的帮助信息。

1. 创建项目

cargo可以创建两种类型的项目:可执行的二进制程序和库。

1)运行以下命令,可以创建可执行的二进制程序。

$ cargo new project_name

2)运行以下命令,可以创建库。

$ cargo new project_name --lib

下面使用Cargo创建新项目——可执行的二进制程序hello_cargo。在终端运行以下命令:

$ cargo new hello_cargo

这会生成一个名为hello_cargo的新文件夹,其中包含以下文件:

hello_cargo
|- Cargo.toml
|- src
    |- main.rs

Cargo.toml是项目数据描述文件,其中包含项目的元数据和依赖库。src/main.rs是源代码文件。编辑源代码文件,输入以下代码:

1  fn main() {
2      println!("Hello, Cargo!");
3  }

2. 编译并运行项目

编译项目,在终端运行以下命令:

$ cargo build

查看文件夹会发现,文件结构已发生变化,其中包含以下文件:

hello_cargo
|- Cargo.lock
|- Cargo.toml
|- src
    |- main.rs
|- target
    |- debug
        |- hello_cargo
        |- ...

cargo build命令会在target/debug/目录下生成一个可执行文件hello_cargo。运行这个可执行文件,可以看到打印出“Hello, Cargo!”字符串。

$ ./target/debug/hello_cargo

也可以直接使用cargo run命令在编译的同时运行生成的可执行文件:

$ cargo run
    Compiling hello_cargo v0.1.0 (/hello_cargo)
        Finished dev [unoptimized + debuginfo] target(s) in 0.31s
            Running `target/debug/hello_cargo`
Hello, Cargo!

3. 发布项目

项目经过严格测试,最终准备发布时,可以使用cargo build --release来优化编译项目,这时会在target/release目录下生成一个在生产环境中使用的可执行文件。

对于简单项目,Cargo可能并不比rustc提供更多的便利。但随着开发的深入,特别是对于多crate的复杂项目,Cargo将会提供极大的便利。本书后续章节的示例代码将全部使用Cargo来构建。