4.3.2. 编译和运行项目
4.3.2.1. 编译项目
cargo new
命令创建了一个 “hello_world”,我们通过 cargo build
命令来编译它:
$ cargo build
Compiling hello_world v0.1.0 (file:///path/to/project/hello_world)
cargo build
命令将代码编译为可执行文件。目前,我们使用的是默认的调试模式进行编译,因此要运行此示例代码,执行 ./target/debug
目录下的二进制文件:
$ ./target/debug/hello_world
Hello, world!
4.3.2.2. 编译并运行项目
我们也可以直接使用 cargo run
命令来运行源代码。cargo run
命令会自行编译,然后运行它:
$ cargo run
Fresh hello_world v0.1.0 (file:///path/to/project/hello_world)
Running `target/hello_world`
Hello, world!
执行 cargo build
命令后,你会注意到,项目目录中创建了几个新文件和目录:
$ tree .
.
|-- Cargo.lock
|-- Cargo.toml
|-- src
| `-- main.rs
`-- target
`-- debug
|-- build
|-- deps
| |-- hello_world-6ad0b2df81336e7f
| |-- hello_world-6ad0b2df81336e7f.d
| `-- hello_world-6ad0b2df81336e7f.dSYM
| `-- Contents
| |-- Info.plist
| `-- Resources
| `-- DWARF
| `-- hello_world-6ad0b2df81336e7f
|-- examples
|-- hello_world
|-- hello_world.d
|-- hello_world.dSYM -> deps/hello_world-6ad0b2df81336e7f.dSYM
|-- incremental
| // ...
`-- native
15 directories, 19 files
其中的 Cargo.lock
文件,包含项目依赖项的有关信息(即使还未有依赖,此文件也会在编译后产生),其内容可读性较差。另外,target
目录包含所有构建产品(二进制文件、依赖项编译文件等)。并且,如上文 cargo build
命令执行时所提及:Cargo 默认生成调试(debug)版本。