Avatar ·

Wie man mit cfg in Rust überprüft, ob ein Projekt im Release- oder Debug-Modus erstellt wurde

Hallo zusammen! Ich habe gerade angefangen, Rust zu lernen, und schreibe ein kleines Projekt mit Cargo. Ich habe ein Problem: Ich möchte, dass das Programm im Debug-Modus viele Debug-Informationen auf der Konsole ausgibt (z. B. Logs mit TRACE-Level), während diese Meldungen im Release-Modus gar nicht ausgegeben werden, um die Leistung nicht zu beeinträchtigen. Ich weiß, dass man in C/C++ dafür Präprozessor-Direktiven wie `#ifdef DEBUG` verwendet. In Rust habe ich vom Makro `cfg!()` gehört, verstehe aber nicht, wie ich es genau für diese Aufgabe anwenden soll. Hier ist ein Beispiel meines aktuellen Codes: ```rust fn main() { let x = 42; println!("x = {}", x); // Hier möchte ich eine Debug-Ausgabe hinzufügen, die nur im Debug-Build erscheint // println!("[DEBUG] x is: {}", x); // Das sollte nur im Debug-Modus funktionieren } ``` Ich habe versucht, `#[cfg(debug_assertions)]` zu schreiben, aber das scheint nicht ganz so zu funktionieren, wie ich es erwarte. Vielleicht sollte ich `#[cfg(not(release))]` verwenden? Oder gibt es ein spezielles Flag?