2016-01-31 32 views
5

Rust'a yeni oldum ve projemi oluşturmak ve çalıştırmak istiyorum. Ben çalışma dizini değiştirmeden izin vermeyen bir yapı komut dosyası oluşturmak istiyorum, çünkü tek bir satırda cargo run -path %project_path% yazabilmek istiyorumCargo.toml yolunu belirtme yolu

cd %project_path% 
cargo run 

: Ben böyle bir şey kullanın. Kargo hedef dizini tanımlayacak herhangi -path veya -target tuşları yok ve hep

C:\WINDOWS\system32 içinde Cargo.toml veya herhangi ebeveyn dizini

+0

Belki "--manifest yolu" seçeneğini istiyorsun? ('--help' argümanı argümanları ve açıklamalarını yazdıracaktır.) – huon

+0

Geçerli çalışma dizininde yer almayan bir projeyi derleyebilmeli ve çalıştırabilmeliyim, ancak –

+0

In * nix kabuk terminolojisini belirttiğim yollarda, '(cd $ project_path; kargo çalıştırması)' nı kullanabilirsiniz: dizini değiştirdiğiniz ve ardından istediğiniz görevi yerine getireceğiniz yeni bir alt kabuk başlatın. Windows için, "cmd -c" cd% project_path%; kargo çalıştırması "satırlarında belirsiz bir şey olacağını düşünüyorum. –

cevap

9

bulamadık mesajı alır gibi görünüyor Neredeyse tüm cargo alt komutları için --manifest-path path/to/Cargo.toml seçeneği, Cargo.toml adlı bir dosya için geçerli dizini ve ebeveynleri arama varsayılanı geçersiz kılma, kullanmak için belirli bir Cargo.toml dosyaya işaret etmeyi sağlar (bu dosya "manifest" dir).

arada, Unix-y komutlar genellikle komut satırı seçenekleri, cargo ve rustc istisna vardır hakkındaki bilgileri yazdıran bir -h veya --help argüman alır. Örneğin.

$ cargo run --help 
Run the main binary of the local package (src/main.rs) 

Usage: 
    cargo run [options] [--] [<args>...] 

Options: 
    -h, --help    Print this message 
    --bin NAME    Name of the bin target to run 
    --example NAME   Name of the example target to run 
    -j N, --jobs N   The number of jobs to run in parallel 
    --release    Build artifacts in release mode, with optimizations 
    --features FEATURES  Space-separated list of features to also build 
    --no-default-features Do not build the `default` feature 
    --target TRIPLE   Build for the target triple 
    --manifest-path PATH Path to the manifest to execute 
    -v, --verbose   Use verbose output 
    -q, --quiet    No output printed to stdout 
    --color WHEN   Coloring: auto, always, never 

If neither `--bin` nor `--example` are given, then if the project only has one 
bin target it will be run. Otherwise `--bin` specifies the bin target to run, 
and `--example` specifies the example target to run. At most one of `--bin` or 
`--example` can be provided. 

All of the trailing arguments are passed to the binary to run. If you're passing 
arguments to both Cargo and the binary, the ones after `--` go to the binary, 
+0

Ben -h komutunun ne yaptığını biliyorum ama 'execute to execute' nun 'cargo.toml' olduğunu beklemiyordum. Sadece bir yanlış anlama. Bunun ek bir meta veri dosyası olduğunu düşünüyorum (.Net'te uygulama bildirimi gibi), bu yüzden bu anahtarı kullanmadım. Bir cevap için teşekkürler. –