rust - 有没有办法在build.rs中检测Windows版本?

标签 rust conditional-compilation

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

最佳答案

当然。
例如,存在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);
}

关于rust - 有没有办法在build.rs中检测Windows版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60646142/

相关文章:

if-statement - Ada 中的 end if 语句与其他语言相比有什么优势

delphi - 如果某些编译器选项(如优化)打开,如何在运行时检测?

c++ - Visual Studio 在使用 `#ifdef` 时错误地标记非事件代码块

rust - petgraph 中的哪种算法会找到从 A 到 B 的最短路径?

c# - 判断是否在IDE中执行的方法?

javascript - Browserify、minifyify、条件编译

multithreading - 线程化 DES 比非线程化慢

rust - Rust 中固定大小字节数组的人体工程学问题

types - 为什么 Rust 的 u64.pow 需要 u32?

rust - 为什么在调用一个方法时会借用一个移动的值,该方法使用也调用方法的参数来按值获取 self ?