Avatar ·

如何使用 Rust 中的 cfg 检查项目是以 release 还是 debug 模式构建的?

大家好!我刚开始学习 Rust,并用 Cargo 写一个小项目。我遇到了一个问题:我需要在调试(debug)构建中让程序输出大量调试信息到控制台(例如,TRACE 级别的日志),而在最终(release)构建中完全不输出这些信息,以免降低运行速度。 我知道在 C/C++ 中,可以使用像 `#ifdef DEBUG` 这样的预处理指令。在 Rust 中,我听说过 `cfg!()` 宏,但不知道如何正确应用于这个任务。 以下是我当前代码的示例: ```rust fn main() { let x = 42; println!("x = {}", x); // 这里我想添加仅在 debug 构建中生效的调试输出 // println!("[DEBUG] x is: {}", x); // 这应该只在 debug 中工作 } ``` 我尝试过这样写:`#[cfg(debug_assertions)]`,但这似乎并不完全符合我的预期。也许应该使用 `#[cfg(not(release))]`?或者有某种特殊的 flag?