Puoi anche inserire sorgenti binarie in src/bin
e il resto delle tue fonti in src
. È possibile visualizzare un esempio in my project. Non è necessario modificare lo Cargo.toml
e ogni file sorgente verrà compilato su un binario con lo stesso nome.
configurazione di L'altra risposta è quindi sostituito dal seguente:
$ tree
.
├── Cargo.toml
└── src
├── bin
│ └── mybin.rs
└── lib.rs
$ cat Cargo.toml
[package]
name = "example"
version = "0.0.1"
authors = ["An Devloper <[email protected]>"]
src/lib.rs
use std::error::Error;
pub fn really_complicated_code(a: u8, b: u8) -> Result<u8, Box<Error>> {
Ok(a + b)
}
src/bin/mybin.rs
extern crate example;
fn main() {
println!("I'm using the library: {:?}", example::really_complicated_code(1, 2));
}
Ed eseguilo:
$ cargo run --bin mybin
I'm using the library: Ok(3)
Inoltre, si può semplicemente creare un src/main.rs
che verrà utilizzato come l'eseguibile di fatto. Purtroppo, questo è in conflitto con il comando cargo doc
:
non in grado di documentare un pacchetto in cui una biblioteca e un binario hanno lo stesso nome. Considerare rinominare uno o segnando la destinazione come doc = false
Grazie Doug, io provare! Le annotazioni #! [Crate_name =] e #! [Crate_type] sono opzionali? –
Quando si utilizza Carico, queste opzioni non sono necessarie perché Cargo le passa come flag del compilatore. Se esegui 'cargo build --verbose', li vedrai nella riga di comando' rustc'. –
Sai perché '[[bin]]' è un array di tabelle? Perché usare '[[bin]]' e non '[bin]'? Non sembra esserci alcuna documentazione su questo. – CMCDragonkai