仅当处于发布模式时,我将如何运行没有窗口的Rust程序
我有一个 Rust 项目,我目前正在处理,我经常需要调试和部署它。虽然它已部署,但它在没有窗口的情况下在后台运行,但是当我调试时,我想要一个窗口来查看是否有任何运行时错误。
我目前#![windows_subsystem = "windows"]在调试时使用并注释掉它,但是程序本身有没有办法检查它是否处于调试模式,因此它不使用该标志?
回答
您可以使用只与如果特定谓词为true的属性进行编译。#![cfg_attr(predicate, attribute)]
至于谓词是什么,我的建议是使用显式功能(例如console),当您想使用非默认行为(例如,显示控制台窗口)进行构建时设置该功能。
此外,如果您想让您的代码可移植,您还应该检查您是否正在为 Windows 编译。
在Cargo.toml:
[features]
console = []
[features]
console = []
在main.rs:
然后您可以编译或运行--features console 以使用默认console子系统。
如果你想实际检查调试模式,你能得到的最接近的是debug_assertions谓词,它在没有优化的编译时默认启用。