Cargo chuyển một số siêu dữ liệu cho trình biên dịch thông qua các biến môi trường, một danh sách có thể tìm thấy trong các trang tài liệu của Cargo .
Môi trường trình biên dịch được điền bằng fill_env
mã của Cargo. Mã này đã trở nên phức tạp hơn kể từ các phiên bản trước đó và toàn bộ danh sách các biến không còn rõ ràng từ nó bởi vì nó có thể là động. Tuy nhiên, ít nhất các biến sau được đặt ở đó (từ danh sách trong tài liệu):
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
Bạn có thể truy cập các biến môi trường bằng cách sử dụng env!()
macro. Để chèn số phiên bản của chương trình, bạn có thể làm điều này:
const VERSION: &'static str = env!("CARGO_PKG_VERSION");
// ...
println!("MyProgram v{}", VERSION);
Nếu bạn muốn chương trình của mình biên dịch ngay cả khi không có Hàng hóa, bạn có thể sử dụng option_env!()
:
const VERSION: Option<&'static str> = option_env!("CARGO_PKG_VERSION");
// ...
println!("MyProgram v{}", VERSION.unwrap_or("unknown"));