问题
I have a Rust program that I want to compile for the "windows" subsystem when I'm building it for distribution. Currently I am using this in my main.rs:
#![feature(windows_subsystem)]
#![windows_subsystem = "windows"]
This works, but when I run the tests on a Windows machine, the Windows subsystem does not have access to the console so I cannot see the output. I need to comment out the above lines of code in order to see the result of my tests.
Is there a way to conditionally compile which subsystem I'm running on in order to get the tests to work?
回答1:
As described in The Rust Programming Language, specifically the chapter on conditional compilation:
You can also set another attribute based on a
cfgvariable withcfg_attr:#[cfg_attr(a, b)]Will be the same as
#[b]ifais set bycfgattribute, and nothing otherwise.
In this case, it should be something like
#![cfg_attr(my_feature_name_i_made_up, windows_subsystem = "windows")]
来源:https://stackoverflow.com/questions/43744379/can-i-conditionally-compile-my-rust-program-for-a-windows-subsystem