Cargo übergibt einige Metadaten über Umgebungsvariablen an den Compiler. Eine Liste davon finden Sie auf den Cargo-Dokumentationsseiten .
Die Compiler-Umgebung wird fill_env
im Code von Cargo gefüllt. Dieser Code ist seit früheren Versionen komplexer geworden, und die gesamte Liste der Variablen ist daraus nicht mehr ersichtlich, da er dynamisch sein kann. Dort werden jedoch mindestens die folgenden Variablen festgelegt (aus der Liste in den Dokumenten):
CARGO_MANIFEST_DIR
CARGO_PKG_AUTHORS
CARGO_PKG_DESCRIPTION
CARGO_PKG_HOMEPAGE
CARGO_PKG_NAME
CARGO_PKG_REPOSITORY
CARGO_PKG_VERSION
CARGO_PKG_VERSION_MAJOR
CARGO_PKG_VERSION_MINOR
CARGO_PKG_VERSION_PATCH
CARGO_PKG_VERSION_PRE
Sie können mit dem env!()
Makro auf Umgebungsvariablen zugreifen . So geben Sie die Versionsnummer Ihres Programms ein:
const VERSION: &'static str = env!("CARGO_PKG_VERSION");
// ...
println!("MyProgram v{}", VERSION);
Wenn Sie möchten, dass Ihr Programm auch ohne Fracht kompiliert wird, können Sie Folgendes verwenden option_env!()
:
const VERSION: Option<&'static str> = option_env!("CARGO_PKG_VERSION");
// ...
println!("MyProgram v{}", VERSION.unwrap_or("unknown"));