Can I conditionally compile my Rust program for a Windows subsystem?

北城以北 提交于 2019-12-02 04:33:52

问题


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 cfg variable with cfg_attr:

#[cfg_attr(a, b)]

Will be the same as #[b] if a is set by cfg attribute, 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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!