답변:
Cargo는 환경 변수를 통해 일부 메타 데이터를 컴파일러에 전달합니다.이 목록은 Cargo 문서 페이지 에서 찾을 수 있습니다 .
컴파일러 환경은 fill_env
카고 코드로 채워집니다 . 이 코드는 이전 버전부터 더 복잡해졌으며 변수 목록은 동적 일 수 있으므로 더 이상 명확하지 않습니다. 그러나 적어도 다음 변수가 문서의 목록에서 설정됩니다.
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
env!()
매크로를 사용하여 환경 변수에 액세스 할 수 있습니다 . 프로그램의 버전 번호를 삽입하려면 다음을 수행하십시오.
const VERSION: &'static str = env!("CARGO_PKG_VERSION");
// ...
println!("MyProgram v{}", VERSION);
카고 없이도 프로그램을 컴파일하려면 다음을 사용할 수 있습니다 option_env!()
.
const VERSION: Option<&'static str> = option_env!("CARGO_PKG_VERSION");
// ...
println!("MyProgram v{}", VERSION.unwrap_or("unknown"));
내장 -crate 모든 상용구없이화물의 환경을 많이 직렬화 도움이됩니다.