有没有办法检测 build.rs 中 Windows 的版本?
Is there a way to detect the version of Windows in a build.rs?
正如标题所说。我正在我的 build.rs 中构建一些 C 文件,我需要根据 Windows 的版本有条件地设置一些定义/有条件地 link 库。有没有办法检测到?
当然可以。
例如 nt_version crate,您可以使用它在编译时 检测 windows 版本 。请注意,您可能 "cross compile" 用于不同的 windows 版本(例如,在 Windows 7 上开发 Windows 10 或类似版本)。
这里有一个关于如何使用它的小片段:
use nt_version;
fn main() {
let version: &str;
match nt_version::get() {
(6, 0, _) => version = "Windows Vista",
(6, 1, _) => version = "Windows 7",
(10, _, _) => version = "Windows 10",
_ => version = "Unsupported!",
}
println!("cargo:warning={}", version);
}
正如标题所说。我正在我的 build.rs 中构建一些 C 文件,我需要根据 Windows 的版本有条件地设置一些定义/有条件地 link 库。有没有办法检测到?
当然可以。 例如 nt_version crate,您可以使用它在编译时 检测 windows 版本 。请注意,您可能 "cross compile" 用于不同的 windows 版本(例如,在 Windows 7 上开发 Windows 10 或类似版本)。
这里有一个关于如何使用它的小片段:
use nt_version;
fn main() {
let version: &str;
match nt_version::get() {
(6, 0, _) => version = "Windows Vista",
(6, 1, _) => version = "Windows 7",
(10, _, _) => version = "Windows 10",
_ => version = "Unsupported!",
}
println!("cargo:warning={}", version);
}