7
votes

Changement de niveau d'avertissement pour les libs 3ème partie

J'aime généralement compiler contre le niveau d'avertissement 4 dans Visual Studio et traiter tous les avertissements comme des erreurs. Le problème est que Ogre3D n'est pas compilé avec le niveau d'avertissement 3 (non plus FBX SDK ou OIS, que j'utilise également), ce qui pose un problème, car maintenant, j'ai maintenant une tonne d'avertissements des bibliothèques Ogre3D qui sont désormais traitées comme des erreurs. Jusqu'à présent, j'ai compilé au niveau 3, mais cela me rend très mal à l'aise. Y a-t-il un moyen de désactiver des avertissements pour des bibliothèques de 3ème parties spécifiques sur lesquelles je n'ai aucun contrôle?


0 commentaires

3 Réponses :


3
votes

Ce peut être que si vous désactivez les stupides msvc les plus connus, le problème deviendra au moins gérable.

Mon en-tête de suppression de SilyWarnings est disponible chez Mon blog ; Il suffit de compiler le code à l'aide de au niveau d'avertissement 4 avec MSVC, sans avertissements.

Autre que cela, vous pouvez aller à l'extrême mesure de l'emplacement d'un "pare-feu de compilateur", ce qui signifie que la mise en place de toutes les utilisations directes de la bibliothèque 3ème partie dans un fichier de mise en œuvre ou un ensemble de ces fichiers. Ensuite, vous pouvez compiler ces fichiers à faible niveau d'avertissement. Mais je ne pense pas que ça vaut la peine.

acclamations et hth.,


3 commentaires

@BOBPAUL: Autant que je puisse voir votre domaine d'expertise est Python, pas C ++.


Sur le plan commercial, je fais principalement C (intégré) puis C ++ (testeur de produit). Python est un langage d'intérêt spelatif. Je ne vois pas comment cela est pertinent.


@BOBPAUL: Eh bien, seule une source très faisant autorité peut apporter une évaluation négative extrêmement impecny-feely-festiquement fantaisie et sans précisité. Vous n'êtes pas une source faisant autorité du tout. Et je viens de vous informer de cela: que je ne prends pas au sérieux, mais plus comme un troll.



9
votes

Vous ne dites pas exactement comment vous compilez, mais voici quelques options:

1 - Visual Studio, vous pouvez définir le niveau d'avertissement pour les fichiers source individuels via les propriétés de chaque fichier source

2 - Vous pouvez également modifier le niveau d'avertissement de manière dynamique dans un fichier à l'aide d'un fichier xxx

qui définit le niveau d'avertissement à 3 entre les deux pragmas. < / p>


0 commentaires

2
votes

Vous pouvez envelopper la tierce partie .h des fichiers dans votre propre fichier et là désactiver localement les avertissements incriminés, car vous ne voudrez peut-être pas désactiver tous les avertissements, mais uniquement ceux spécifiques.

// include_file_wrapper.h

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wuninitialized"

#include "file.h"

#pragma GCC diagnostic pop


0 commentaires