Rust初入门 -- 02 Cargo - Rust包管理器
Cargo - Rust包管理器
添加依赖
新建项目cargo,重名02-cargo并且启动:
1 2 3 4
| cargo new cargo mv cargo 02-cargo # 这部分为了排序方便,可忽略 cd 02-cargo cargo run
|
添加依赖
可以在 crates.io,即 Rust 包的仓库中找到所有类别的库。在 Rust 中,我们通常把包称作“crates”。
在本项目中,我们使用了名为 ferris-says 的库。
我们在 Cargo.toml 文件中添加以下信息(从 crate 页面上获取):
1 2
| [dependencies] ferris-says = "0.1"
|
接着运行:
此命令就会自动下载依赖包,生成新文件 Cargo.lock,该文件记录了本地所用依赖库的精确版本.
接着使用该依赖,打开src/main.rs:
1 2 3 4 5 6 7 8 9 10 11 12
| use ferris_says::say; use std::io::{stdout, BufWriter};
fn main() { let stdout = stdout(); let out = b"Hello, world!"; let width = 24;
let mut writer = BufWriter::new(stdout.lock()); say(out, width, &mut writer).unwrap(); println!(""); }
|
命令行运行
首次会下载依赖包,并且编译:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| 02-cargo git:(master) ✗ cargo run Updating crates.io index Downloaded ferris-says v0.1.1 Downloaded smallvec v0.4.5 Downloaded error-chain v0.10.0 Downloaded clap v2.33.0 Downloaded ansi_term v0.11.0 Downloaded backtrace v0.3.42 Downloaded strsim v0.8.0 Downloaded textwrap v0.11.0 Downloaded unicode-width v0.1.7 Downloaded atty v0.2.14 Downloaded vec_map v0.8.1 Downloaded cc v1.0.50 Compiling libc v0.2.66 Compiling cc v1.0.50 Compiling bitflags v1.2.1 Compiling rustc-demangle v0.1.16 Compiling unicode-width v0.1.7 Compiling cfg-if v0.1.10 Compiling strsim v0.8.0 Compiling ansi_term v0.11.0 Compiling vec_map v0.8.1 Compiling smallvec v0.4.5 Compiling textwrap v0.11.0 Compiling atty v0.2.14 Compiling clap v2.33.0 Compiling backtrace-sys v0.1.32 Compiling backtrace v0.3.42 Compiling error-chain v0.10.0 Compiling ferris-says v0.1.1 Compiling cargo v0.1.0 (/Users/zhaoxiongliang/work/github/jsl6/rust-learn/02-cargo) Finished dev [unoptimized + debuginfo] target(s) in 31.88s Running `target/debug/cargo`
---------------------------- | Hello, world! | ---------------------------- \ \ _~^~^~_ \) / o o \ (/ '_ - _' / '-----' \
|
如果你能看到最后的打印结果。
那么恭喜你,你已经可以写rust的代码了。