Je travaille sur un grand projet C++ collaboratif qui est à la fois développé et exécuté sous différentes versions de Linux, OS X et Windows. Nous compilons sur ces plateformes avec GCC, Visual Studio C++ et le compilateur Intel C++. Alors que de plus en plus de gens commencent à développer du code pour le projet, nous commençons à voir des erreurs étranges dans la compilation et l'exécution qui sont spécifiques à des compilateurs particuliers sur des systèmes d'exploitation particuliers. Un exemple de ceci est l'inclusion implicite des en-têtes que certaines paires OS/compilateurs semblent trouver pour vous, surchargeant accidentellement une fonction d'une classe de base dans une classe dérivée.Rendre les compilateurs GCC et autres C++ très stricts
Mon but est de rendre la compilation sur GCC plus stricte et d'attraper plus d'erreurs sur toutes les plateformes afin de ne pas continuer à courir dans ces problèmes. Voici ma liste des drapeaux que je pense à essayer pour GCC que j'ai trouvé via Google et l'homme du CCG pages:
- -Wall
- -Wextra
- -Winit auto
- -Wold style coulé
- -Woverloaded virtuel
- -Wuninitialized
- -Wmissing-déclarations
- -Wini t-auto
- -ansi
- -pedantic
Quels sont les autres drapeaux que les gens utilisent pour faire du CCG (et moins important Visual Studio C++ et le compilateur Intel C++) obéissent à une norme plus stricte du C++ la langue? Soyez précis sur le compilateur et la version dont vous parlez, car certains d'entre eux peuvent ne pas être implémentés dans toutes les versions de tous les compilateurs.
De nombreux outils commerciaux sont disponibles: http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis#C.2FC.2B.2B. Si vous souhaitez investir un outil commercial, vous pouvez normalement obtenir des versions d'essai/d'évaluation. –
Merci. C'est bon à savoir. – KOkon