使用C预处理器,这是常见的,
#if defined(NDEBUG)
// release build
#endif
#if defined(DEBUG)
// debug build
#endif
Run Code Online (Sandbox Code Playgroud)
货物的粗略等价物是:
cargo build --release 发布.cargo build 用于调试.如何使用Rust的#[cfg(...)]属性或cfg!(...)宏来做类似的事情?
我知道Rust的预处理器不像C那样工作.我查看了文档,此页面列出了一些属性.(假设此列表是全面的)
debug_assertions 可以检查,但用于检查更一般的调试情况可能会误导.
我不确定这个问题是否与货物有关.
我有一个 Rust 程序,当我构建它进行分发时,我想为“windows”子系统编译该程序。目前我在 main.rs 中使用它:
#![feature(windows_subsystem)]
#![windows_subsystem = "windows"]
Run Code Online (Sandbox Code Playgroud)
这是可行的,但是当我在 Windows 计算机上运行测试时,Windows 子系统无法访问控制台,因此我看不到输出。我需要注释掉上面的代码行才能看到测试结果。
有没有办法有条件地编译我正在运行的子系统以使测试正常工作?