是否可以在build.rs中检测Windows版本?

问题描述 投票:0回答:1

正如标题所述。我正在build.rs中构建一些C文件,并且需要根据Windows版本有条件地设置一些define /有条件链接库。有没有办法检测出来?

rust conditional-compilation
1个回答
1
投票

当然。例如,有nt_version crate,可用于检测Windows版本在编译时。请注意,您可能会针对不同的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);
}
© www.soinside.com 2019 - 2024. All rights reserved.