使用發(fā)布配置來(lái)自定義構(gòu)建
Cargo 有兩個(gè)主要的配置:
(1)運(yùn)行 cargo build 時(shí)采用的 dev 配置
(2)運(yùn)行 cargo build --release 的 release 配置
$ cargo build
Finished dev [unoptimized + debuginfo] target(s) in 0.0 secs
$ cargo build --release
Finished release [optimized] target(s) in 0.0 secs
Cargo.toml 文件沒(méi)任何 [profile.] 時(shí),Cargo 對(duì)每一個(gè)配置采用默認(rèn)設(shè)置。
通過(guò)在[profile.]對(duì)應(yīng)的部分中增加任何定制的配置
// 控制 Rust 會(huì)對(duì)代碼進(jìn)行何種程度的優(yōu)化
// 值從 0 到 3
// 越高的優(yōu)化級(jí)別需要更多的時(shí)間編譯
[profile.dev]
opt-level = 0
[profile.release]
opt-level = 3
使用工作空間來(lái)組織更大的項(xiàng)目
構(gòu)建目錄如下
// rust_add % tree
.
├── Cargo.lock
├── Cargo.toml
├── add-one
│ ├── Cargo.toml
│ └── src
│ └── lib.rs
├── add-two
│ ├── Cargo.toml
│ └── src
│ └── lib.rs
├── adder
│ ├── Cargo.toml
│ └── src
│ └── main.rs
Cargo.toml
[workspace]
members = [
"adder",
"add-one",
"add-two",
]
add-one/src/lib.rs
pub fn add_one(x: i32) -> i32 {
x + 1
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn it_works() {
assert_eq!(3, add_one(2));
}
}
add-two/src/lib.rs
pub fn add_two(x: i32) -> i32 {
x + 2
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn it_works() {
assert_eq!(4, add_two(2));
}
}
adder/src/main.rs
use add_one;
use add_two;
fn main() {
let num = 10;
println!("Hello, world! {} plus one is {}!", num, add_one::add_one(num));
println!("Hello, world! {} plus two is {}!", num, add_two::add_two(num));
}
命令
// 根目錄下創(chuàng)建lib
cargo new add-two --lib
cargo new add-one --lib
// 根目錄下執(zhí)行構(gòu)建
cargo build
// 根目錄下執(zhí)行測(cè)試
cargo test
// 運(yùn)行adder中的main
cargo run -p adder
cargo install 從 Crates.io 安裝二進(jìn)制文件
cargo install 命令用于在本地安裝和使用二進(jìn)制 crate
crate 的 README 文件有該 crate 是庫(kù)、二進(jìn)制目標(biāo)還是兩者都是的信息。
cargo install ripgrep
最后一行輸出展示了安裝的二進(jìn)制文件的位置和名稱(chēng)
在這里 ripgrep 被命名為 rg
Installing /Users/xxx/.cargo/bin/rg
將安裝目錄加入 $PATH (rust在安裝時(shí)已經(jīng)加入了PATH)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-581129.html
// pwd
/Users/xxx/.cargo/bin
// ls
cargo cargo-miri rls rust-gdbgui rustdoc
cargo-clippy clippy-driver rust-analyzer rust-lldb rustfmt
cargo-fmt rg rust-gdb rustc rustup
運(yùn)行 rg --help 并開(kāi)始使用一個(gè)更快更 Rust 的工具來(lái)搜索文件文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-581129.html
到了這里,關(guān)于rust學(xué)習(xí)-cargo和crates.io的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!