Je continue à recevoir cet avertissement d'une bibliothèque tierce (que je ne veux pas déboguer), donc j'apprécierais vraiment manière de supprimer cet avertissement spécifique. Google m'a échoué, alors je suis là.Comment supprimer l'avertissement "type énumérique et non-énumérique dans l'expression conditionnelle" dans GCC
Répondre
Le drapeau suivant ne sera-t-il pas supprimé de cet avertissement?
-Wno-enum-promotion
Eh bien, puisque je ne pouvais pas trouver un moyen de désactiver cet avertissement spécifique, je recours à l'utilisation de system_header #pragma de gcc. Fondamentalement, j'ai enveloppé l'en-tête problématique comme ceci:
#if defined __GNUC__ #pragma GCC system_header #elif defined __SUNPRO_CC #pragma disable_warn #elif defined _MSC_VER #pragma warning(push, 1) #endif #include "foo.h" #if defined __SUNPRO_CC #pragma enable_warn #elif defined _MSC_VER #pragma warning(pop) #endif
où foo.h était l'en-tête problématique. Maintenant, je viens d'inclure ce fooWrapper.h et le problème disparaît. Notez que cela devrait fonctionner aussi pour d'autres compilateurs (MSC et SUNPRO), mais je ne l'ai pas testé.
Thanx, ce '#pragma GCC system_header' m'a sauvé d'un tas d'avertissements non-sens. –
-Wno-enum-compare
contourne cet avertissement.
En gcc4.6 et plus tard, vous pouvez utiliser Pragma pour supprimer des avertissements spécifiques et faire que la suppression uniquement à un bloc de code spécifique, à savoir:
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wno-enum-compare"
// Code that causes warning goes here
#pragma GCC diagnostic pop
Le push/pop sont utilisées pour préserver les options de diagnostic qui étaient en place avant le traitement de votre code.
Ce serait une bien meilleure approche que d'utiliser #pragma GCC system_header
pour supprimer tous les avertissements. (Bien sûr, dans gcc plus vous pouvez être « coincé » avec l'approche #pragma GCC system_header
!)
Voici une belle référence sur la suppression des avertissements gcc: http://www.dbp-consulting.com/tutorials/SuppressingGCCWarnings.html
Cette page décrit également comment utiliser -fdiagnostics-show-option
pour savoir quelle option contrôle un avertissement particulier.
Bien sûr, il est généralement préférable de corriger la cause de tous les avertissements plutôt que de les supprimer! Cependant, parfois ce n'est pas possible.
- 1. supprimer sélectivement message d'avertissement GCC
- 2. jointure conditionnelle dans mysql
- 3. conditionnelle rendent dans asp.net
- 4. conditionnelle requêtes LINQ dans VB.NET
- 5. DataTable, Comment supprimer des lignes de manière conditionnelle
- 6. DirectoryIndex conditionnelle dans .htaccess
- 7. Logique conditionnelle dans ASP.net page
- 8. Prendre une moyenne conditionnelle dans Stata
- 9. Comment supprimer de manière conditionnelle les exceptions d'application écrites dans le journal des événements?
- 10. Comment IE8 conditionnelle commentaire
- 11. médiane conditionnelle dans MS Excel
- 12. comment retourner un script dans c/gcc?
- 13. Valeur constante dans l'expression conditionnelle
- 14. augmentation automatique conditionnelle dans xsl
- 15. Désactiver gcov dans gcc build
- 16. Validation conditionnelle de règle dans JQuery
- 17. Quelle est la différence entre -ggdb gcc et -g gcc
- 18. Clause conditionnelle where dans l'instruction Select
- 19. Comment ignorer un test de manière conditionnelle dans mbUnit?
- 20. Comment afficher un champ de façon conditionnelle dans Infopath?
- 21. Comment supprimer unique dans MySQL?
- 22. Pouvez-vous définir une désinstallation conditionnelle dans Wix?
- 23. Comment enregistrer et supprimer une image Bitmap dans Blackberry Storm?
- 24. Comment "fadeOut" et "supprimer" un div dans jQuery?
- 25. Comment supprimer tous les TEXT/Numbers entre (et) dans sqlite3?
- 26. Comment modifier et supprimer des données dans Django?
- 27. SQL en ligne conditionnelle dans Sélectionnez
- 28. Insertion conditionnelle dans SqlServer Compact Edition
- 29. Instruction conditionnelle dans la clause WHERE
- 30. lien pour booster regex dans gcc
Non. En fait, gcc ne semble même pas reconnaître cette option. Où avez-vous entendu parler de cette option? Ce n'est pas listé sur http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html –