Home

Rust 2.3 Hello, Cargo!

10 Jan 2015 by LelouchHe

原文链接

Cargo是Rustaceans用来管理Rust项目的工具.Cargo目前还是alpha版本,就像Rust一样,而且还在开发中.但它已经足以胜任很多Rust项目了,所以Rust项目最好一开始就使用Cargo.

Cargo管理3个东西:构建代码,下载依赖,构建依赖.起初,你的代码不依赖任何东西,所以我们只使用第一个功能.最终,我们会增加很多东西.因为我们一开始就使用Cargo,所以后来会很简单的.

如果你通过官方Rust安装程序来安装的,那么你已经安装了Cargo.要是你通过其他方式安装,你应该看看Cargo README如何安装.

让我们用Cargo来构建刚才的”Hello World”.

为了构建Cargo项目,我们需要做2件事情:新建Cargo.toml配置文件,将源文件放到指定位置.首先:

$ mkdir src
$ mv main.rs src/main.rs

Cargo会假定源文件放在src目录下.这样顶层目录就可以放其他东西,比如README, license或其他非代码文件.Cargo帮我们将项目管理好,各在各位.

接下来,是配置文件

$ editor Cargo.toml

确定名字的正确性,开头必须是大写”C”!

然后输入以下配置:

[package]
name = "hello_world"
version = "0.1.1"
authors = [ "Your name <you@example.com>" ]

[[bin]]
name = "hello_world"

这是TOML格式,下面是简单的介绍:

TOML旨在通过简单语法提供易读的最小化配置文件格式.TOML要对应成无歧义的hash表.TOML需要容易用各种语言来解析.

TOML类似于INI,但有一些额外的优点.

通常,文件中有2个表:packagebin.第一个告诉Cargo关于项目的一些元信息.第二个告诉Cargo我们关注的是构建二进制程序,不是lib库(虽然我们可以同时得到),就像bin名字暗示的一样.

一旦你有了配置文件,我们就能构建了.输入下面:

$ cargo build
    Compiling hello_world v0.0.1 (file:///dir/projects/hello_world)
$ ./target/hello_world
Hello, world!

搞定!我们使用cargo build来构建,用./target/hello_world来运行.这并没有rustc来的简单,但思考下将来:当我们的项目不止一个文件,我们就要多次调用rustc,然后再传递一堆参数把项目打包起来.使用Cargo,就算项目扩大了,我们还是使用cargo build一个命令就能构建项目了.

你会注意到,Cargo新建了一个文件: Cargo.lock.

[root]
name = "hello_world"
version = "0.0.1"

这个文件是Cargo用来管理项目依赖的.现在,我们没有依赖,所以该文件没什么用.你不需要使用这个文件,Cargo会管理的.

搞定!我们成功使用Cargo构建了hello_world.尽管程序比较简单,但使用了一些以后我们会用到的工具.

现在万事具备,我们来学习Rust语言本身.这些都是以后Rust编程的基础.