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个表:package
和bin
.第一个告诉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编程的基础.