88 votes

Désactiver des avertissements de GCC pour qu’une partie d’une unité de traduction de façon sélective ?

Quel est le CCG plus proche équivalent à ce code de préprocesseur MSVC ?

Nous avons le code dans les en-têtes inclus communément dont nous ne voulons pas de générer un avertissement spécifique. Cependant, nous voulons les fichiers qui incluent des en-têtes pour continuer à générer cet avertissement (si le projet a permis cette mise en garde).

98voto

Matt Joiner Points 29194

Cela est possible dans GCC depuis la version 4.6, ou autour de juin 2010 dans le coffre.

Voici un exemple :

36voto

chaos Points 69029

La chose la plus proche est le CCG diagnostic pragma, `` . Il n’est pas très proche de ce que vous voulez et voir le lien pour les détails et les avertissements.

33voto

Tom Points 6758

J'ai fait quelque chose de similaire. Pour la troisième partie du code, je n'ai pas envie de voir des avertissements à tous. Donc, plutôt que de spécifier -I/path/to/libfoo/include, j'ai utilisé -isystem /path/to/libfoo/include. Cela rend le compilateur de traiter les fichiers d'en-tête en tant que "système d'en-têtes" pour l'objet de mises en garde, et aussi longtemps que vous n'avez pas activer -Wsystem-headers, vous êtes plutôt en sécurité. J'ai encore vu quelques avertissements de fuite hors de là, mais elle coupe vers le bas sur la plupart de la jonque.

Notez que cette seulement vous aide si vous pouvez isoler le code fautif de l'-répertoire. Si c'est juste un sous-ensemble de votre projet, ou mélangés avec d'autres codes, vous êtes hors de la chance.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X