Avatar ·

Comment vérifier si un projet est compilé en mode debug ou release en utilisant cfg en Rust ?

Bonjour à tous ! Je viens de commencer à apprendre Rust et j'essaie de comprendre la compilation conditionnelle. J'ai besoin que, selon que je compile mon projet en mode debug ou release, un code différent soit exécuté. Par exemple, en debug, je veux afficher beaucoup d'informations de débogage, et en release, seulement des logs minimaux. Je sais qu'en C/C++, il existe des macros comme `#ifdef DEBUG`, mais comment faire en Rust ? J'ai essayé d'utiliser `#[cfg(debug_assertions)]`, mais je ne comprends pas bien comment cela fonctionne. Voici un exemple de mon code : ```rust fn main() { #[cfg(debug_assertions)] println!("Debug build"); #[cfg(not(debug_assertions))] println!("Release build"); } ``` Ce code fonctionne, mais j'ai entendu dire que `debug_assertions` peut ne pas se comporter comme prévu dans certains cas. Par exemple, si j'exécute des tests ou des benchmarks ? Ou si je compile avec `--release`, cela signifie-t-il garantie que c'est release ? J'ai aussi vu des mentions de `profile = "release"` et `profile = "debug"` dans les attributs `cfg`. Quelle est la différence ?