J'inclus un fichier d'une bibliothèque tierce qui génère une erreur qui peut être rétrogradée en un avertissement avec -fpermissive
. Mais parce que je ne veux pas "polluer" mon journal de compilation avec ces avertissements, je veux désactiver complètement ces messages.
Jusqu'à présent, j'ai défini le -fpermissive
option avec un diagnostic pragma lors de l'inclusion du fichier; quelque chose comme:
#pragma GCC diagnostic Push
#pragma GCC diagnostic warning "-fpermissive"
#include <third-party-file.h>
#pragma GCC diagnostic pop
Étant donné que gcc fournit généralement une version "positive" et "négative" du -f
flags, j'ai pensé à ignorer la fonction "non permissive":
#pragma GCC diagnostic ignored "-fno-permissive"
#include <third-party-file.h>
Mais il ne semble pas y avoir de version "négative" du -fpermissive
flag (j'utilise gcc 4.6.3; mais même la version 4.7.0 ne l'a pas ).
Y a-t-il une chance que je puisse imiter ce comportement? Merci!
tldr: Vous ne pouvez pas désactiver la sortie fpermissive après GCC 4.7.
Il suffit de poster ceci ici pour qu'il ait plus de visibilité: malheureusement, la réponse de zwol (bien que bien intentionnée et potentiellement utile à ceux qui ont des versions plus anciennes de GCC) ne fonctionne pas pour les versions plus récentes de GCC. À partir de GCC 4.8 et au-delà, vous ne pouvez pas désactiver la sortie fpermissive. o11c dans son commentaire à l'OP fournit utilement le bug suivant qui suit cela:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81787
Notez qu'il est dans l'état "RÉSOLU INVALIDE", donc l'impossibilité de le désactiver est le comportement attendu et il n'est pas prévu de le changer.
Il est peut-être un peu tard pour cela, mais l'un d'eux devrait faire ce que vous vouliez:
#pragma GCC diagnostic ignored "-fpermissive"
ou
#pragma GCC diagnostic ignored "-pedantic"
"ignoré" est la façon dont vous réduisez complètement un diagnostic, et l'inverse de -fpermissive
est -pedantic
, pour des raisons historiques.