curl https://sh.rustup.rs -sSf | sh
这将会安装rustc, rustup, rustfmt, cargo 等等程序
手动将 Rust 加入系统 PATH 变量中:
source $HOME/.cargo/env
或者可以在 ~/.bash_profile 文件中增加如下行:
export PATH="$HOME/.cargo/bin:$PATH"
> rustc --version
rustc 1.39.0 (4560ea788 2019-11-04)
fn main() {
println!("Hello, world!");
}
> rustc main.rs
> ./main
Hello, world!
1,宏:println! 调用了一个 Rust 宏(macro)。如果是调用函数,则应输入 println(没有!)
2,函数用fn定义
3,以分号结尾
4,编译后的二进制包很大2.5M
-rwxrwxrwx. 1 vagrant vagrant 2.5M Dec 17 10:10 main
-rwxrwxrwx. 1 vagrant vagrant 45 Dec 17 10:15 main.rs
构建系统和包管理器
> cargo new cargo
> cd cargo
> cargo build
Compiling cargo v0.1.0 (/vagrant/rust/cargo)
Finished dev [unoptimized + debuginfo] target(s) in 1.45s
> ./target/debug/cargo
Hello, world!
cargo build会使 Cargo 在项目根目录创建一个新文件:Cargo.lock。这个文件记录项目依赖的实际版本。自己永远也不需要碰这个文件,让 Cargo 处理它就行。
构建结果放在target/debug目录并缓存,再次构建时如果源文件没有修改,且编译结果已经缓存,则不用重新构建。
> cat Cargo.lock
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
[[package]]
name = "cargo"
version = "0.1.0"
同时编译并运行生成的可执行文件,如果发现程序编译过,且有没有修改,则不用重新编译
> cargo run
Finished dev [unoptimized + debuginfo] target(s) in 0.11s
Running `target/debug/cargo`
Hello, world!
> rm -rf target
> cargo run
Compiling cargo v0.1.0 (/vagrant/rust/cargo)
Finished dev [unoptimized + debuginfo] target(s) in 1.21s
Running `target/debug/cargo`
Hello, world!
执行编译前的检查,速度会比构建快一些,主要是省略了生成可执行文件的步骤
> cargo check
Checking cargo v0.1.0 (/vagrant/rust/cargo)
Finished dev [unoptimized + debuginfo] target(s) in 0.67s
不管你使用什么操作系统,cargo的命令都是一样的。
cargo build --release,优化编译项目,让rust程序运行的更快,但是需要消耗更长的编译时间。
优化编译的构建结果放在./target/release目录下。
> cargo build --release
Compiling cargo v0.1.0 (/vagrant/rust/cargo)
Finished release [optimized] target(s) in 0.96s
> ./target/release/cargo
Hello, world!
https://kaisery.github.io/trpl-zh-cn/ch01-03-hello-cargo.html