Wie überprüft man, ob ein Projekt im Debug- oder Release-Modus erstellt wird, mit cfg in Rust?
Hallo zusammen! Ich habe gerade angefangen, Rust zu lernen, und versuche, die bedingte Kompilierung zu verstehen. Ich brauche, dass je nachdem, ob ich das Projekt im Debug- oder Release-Modus erstelle, unterschiedlicher Code ausgeführt wird. Zum Beispiel möchte ich im Debug-Modus viele Debug-Informationen ausgeben, im Release-Modus aber nur minimale Logs. Ich weiß, dass es in C/C++ Makros wie `#ifdef DEBUG` gibt, aber wie macht man das in Rust?
Ich habe versucht, `#[cfg(debug_assertions)]` zu verwenden, verstehe aber nicht ganz, wie es funktioniert. Hier ist ein Beispiel meines Codes:
```rust
fn main() {
#[cfg(debug_assertions)]
println!("Debug build");
#[cfg(not(debug_assertions))]
println!("Release build");
}
```
Dieser Code funktioniert, aber ich habe gehört, dass sich `debug_assertions` in manchen Fällen nicht wie erwartet verhalten kann. Zum Beispiel, wenn ich Tests oder Benchmarks ausführe? Oder wenn ich mit `--release` erstelle, bedeutet das dann garantiert Release?
Ich habe auch Erwähnungen von `profile = "release"` und `profile = "debug"` in `cfg`-Attributen gesehen. Was ist der Unterschi