Je construit mon programme avec -pedantic code> drapeau, qui provoque une erreur
extra ';' code> (en raison d'un en-tête tiers utilisant de quelques macros de manière incohérente; L'erreur n'est pas affichée lorsque
-pedantic code> est éteint). Je n'ai pas vraiment envie de tourner
-pedantic code> éteint, et je ne veux pas non plus éditer l'en-tête. Y a-t-il un moyen de supprimer cette erreur exacte? Comme un
-wno-gênant-Error-Error Code> Compiler ou quelque chose? P>
3 Réponses :
La solution de contournement est de supprimer -pedantic code>. Rien d'autre ne marchera sur cette affaire. P>
@Kylestrand n'est pas réellement "buggy", mais pas tout à fait correct, non plus. Je ne me souviens pas de quelle bibliothèque m'a causé ce problème il y a quatre ans, mais il y avait une magie macro qui conduit à ce problème.
@Romandmitrienko J'ai même trouvé ce fonctionnement sur Catch2 qui se développe continuellement sous les nouveaux stimules qu'il est si ennuyeux
Utilisez Pour les en-têtes que vous entretenez, modifiez-les simplement. P> -Isystem code> plutôt que
-I code> Lorsque vous comprenez les chemins, la GCC ne vous avertira pas sur les en-têtes du système. P>
N'a pas travaillé pour moi. Inclus la bibliothèque avec -System mais les avertissements ont toujours été lancés pour le compilateur de la pomme de Linux-> Apple, mais cela fonctionne certainement pour g ++ et clang
Vous pouvez supprimer des avertissements pédantants pour les en-têtes externes, comme celui-ci:
//save compiler switches #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wpedantic" //Bad headers with problem goes here #include <ros/ros.h> #include <sensor_msgs/LaserScan.h> //restore compiler switches #pragma GCC diagnostic pop
Pourquoi voulez-vous utiliser Pedantic? En regardant gcc.gnu.org/ OnLineDocs / GCC-4.4.3 / GCC / ... Il semble qu'il n'y a aucun moyen de faire ce que vous voulez. Sûrement si l'utilisation de Pedantic est simplement basée sur un sentiment, vous êtes meilleur sans elle ;-)
Eh bien, non seulement sentiment :) Il y a de fortes recommandations que je dois suivre
Hmmm délicat. Je suppose que l'en-tête tiers est open source? Avez-vous des chances de la fixer?
En fait, c'est une source ouverte, alors je suppose que je vais essayer de contacter l'auteur. Eh bien, il semble qu'il n'y ait pas de solution de contournement rapide pour l'instant ... :)