Question

J'aime généralement avoir beaucoup d'avertissements activés lors de la programmation. Cependant, certaines bibliothèques contient du code qui provoque facilement des avertissements (.., python, Qt, ..). Lors de la compilation avec gcc je peux utiliser -isystem au lieu de faire taire -I cela. Comment puis-je faire la même chose avec le compilateur MS? Je connais l'#pragma d'avertissement, mais je voudrais une solution qui ne nécessite pas de code spécifique du compilateur dans tous les sens. Je sais aussi que je peux désactiver les avertissements spécifiques, mais ce n'est pas ce que je veux soit.

BTW: isystem devrait être une étiquette de cette question, mais je ne pouvais pas le faire ..

Résumé:. Je veux voir tous avertissements de mon code, et pas avertissements de code externe

Était-ce utile?

La solution

Au 17/08/2017, cela semble encore impossible.

J'ai ajouté une demande de fonctionnalité ici:

https: // developercommunity.visualstudio.com/content/problem/96411/impossible-to-ignore-warnings-from-system-librarie.html

Mise à jour 2018:

La question est maintenant fermée comme fixe et est disponible dans l'installation standard MS VS [ ]. Un billet de blog de l'équipe MS passe par les nouvelles fonctionnalités [ ].

La solution de MS est flexible. Vous ne pouvez pas seulement différencier en utilisant des chemins comme vous le faites avec --isystem, mais par exemple aussi par le fait que vous utilisez #include "" ou #include <>. Le billet de blog vaut lecture pour voir tous les différents points de personnalisation.

Enfin les avertissements sont utilisables pour moi aussi sur la plate-forme MS VS.

Autres conseils

existe maintenant sous /experimental:external /external:I system_include_path /external:W0. Voir https://blogs.msdn.microsoft. com / vcblog / 2017/12 / 13 / avertissements-théorie cassé / pour beaucoup plus de détails.

Non, MSVC n'a pas d'équivalent -isystem.


regard à la sortie de sortie cl /? :

  

/ wd désactiver avertissement n

     

/ nous traitons d'avertissement n comme une erreur

     

/ wo avertissement question n fois

     

/ w niveau d'avertissement de consigne 1-4 pour n

Notez que cela désactive les mises en garde pour l'ensemble de votre projet; Je me souviens lors de l'utilisation de Qt je préfère changer sa tête principale avec la désactivation d'avertissement #pragma et activer à la fin de nouveau pour que je puisse encore voir tous les avertissements pour ma propre source.

Modifier l'auteur modifié sa question, la réponse mise à jour: il n'y a pas moyen d'obtenir votre code avec des avertissements et le code Qt sans avertissement en utilisant des drapeaux du compilateur: comment allez-vous dire au compilateur ce qui est ' votre » code?

Notez que les drapeaux ci-dessus peuvent être appliqués au niveau des fichiers et, si cela vous permettra de désactiver les avertissements uniquement pour les fichiers dans lesquels vous incluez des en-têtes de Qt, mais toujours signifie que vous ne pouvez pas les voir pour votre propre code dans ce fichiers.

Je reste avec la réponse ci-dessus; il est pas tout à fait assez, mais je suis sûr que c'est la seule façon: utiliser #pragma au début et à la fin de l'en-tête Qt (s). Modifiez les en-têtes Qt (encore plus laid), ou choisir une façon moins invasive comme ceci:

//your source/header file
#include "shutuppqt.h"
#include <QString>
#include "enableallwarnings.h"

exemple "shutuppqt.h"

#ifdef MSVC
  #pragma warning ( disable : 4222 ) //or whatever warning Qt emits
#else
  //....
#endif

exemple "enableallwarnings.h"

#ifdef MSVC
  #pragma warning ( enable : 4222 ) //or default instead of enable
#else
  //....
#endif
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top