Warning à activer

a marqué ce sujet comme résolu.

Salut,

Comme vous le savez peut -être, je suis le co-auteur du cours de C++ qui est actuellement en beta ici. Je suis actuellement en train de créer une version préconfigurée de Code::Blocks que l'on a décidé de proposer en téléchargement pour au lecteur. J'ai, après un conseil de gbdivers (ou de Ksass'Peuk, je ne sais plus), choisi le compilateur Clang, pour sa clarté au niveau des erreurs, un gros plus pour les débutants. J'aimerais maintenant avoir votre avis sur les warnings et autres options de compilation à mettre en place, pour avoir un environnement optimal pour un débutant.

Merci d'avance ! :)

+2 -0

Bonjour,

Personnellement, j'activerais tout et en mode erreur, en particulier pour un cours. Si lors de la rédaction une alerte est gênante alors que le code est juste, je la désactiverais en rajoutant un note pour expliquer pourquoi (i.e. à quoi sert cette alerte et pourquoi elle n'est pas pertinente).

Comme je l'ai dit plus haut, -Weverything ne me sert pas en pratique … Je m'en sers quand je debug. Par principe je m'interdis de laisser passer le moindre warning. La seule exception étant le padding, et encore j'essaie de le corriger si possible.

gbdivers, c'est quoi ta définition de "inutile" ? Quand t'as un warning, normalement c'est que y'a un truc pas beau qu'il faut corriger, ça n'est pas inutile par définition.

inutile = -Wmissing-noreturn et -Wmissing-prototype par exemple

Mais je viens de tester avec un code d'un exo ( https://openclassrooms.com/forum/sujet/exo-de-gbdivers-autre-implementation ), effectivement, c'est moins bruyant que dans mes souvenirs. On peut s'en sortir en ajoutant spécifiquement les quelques -Wno- sur les warnings casses-pieds

+1 -0

On parle ici d'une configuration pour des codes d'exemple / application d'un cours, pas d'une configuration pour une situation réel. Je suis convaincu qu'un -Weverything -Werror avec quelques -Wno- sur les points nécessaires serait jouable.

Pour info, boost compile en -Weverything -Werror avec ~20 -Wno- et là on parle d'un code qui est bourré de macro/hack pour supporter un grand nombre de compilateurs/plateformes.

Je préfère nettement tout activer, comprendre l'erreur et si elle est pertinent, puis la retirer; que de ne pas l'avoir, chercher et découvrir qu'il y a un warning qui m'aurait fait gagner du temps.

Cela dit, je cherche une solution qui puisse être utilisée dans un projet "réel", car c'est cette configuration qui sera utilisée par le lecteur s'il souhaite créer ses propres petits projets. (dans un premier temps en tout cas) Donc si Weverything est trop contraignant, je vais peut être choisir un autre "lot" d'options. J'irais regarder la doc, avant de faire mon choix.

+0 -0

Le petit problème avec clang, c'est justement sa documentation. Tu n'auras pas la liste détaillé de l'ensemble des diagnostiques possibles (si tu trouves une telle ressource je prends). Tu vas devoir te baser sur celle de gcc qui n'est que partielle (clang en offre plus).

Avant de décrêter que -Weverything est trop contraignant, pourquoi ne l'essaierais tu pas ? (sur tes exemples/projets)

Yop, Personnellement je mettrais de base -W -Wall -Werror :) je trouve que c'est quand même une bonne base pour un débutant :P . Par contre au risque de me faire insulter de tous les noms, je trouve ça bizarre de pré configurer le compilateur de l'IDE, ça pourrait être intéressant pour la personne qui suit le cours d'avoir un petite partie expliquant comment faire :) .

PS : I'm here now :D Cordialement,

+0 -0

En fait, la version préconfigurée n'est que pour les premières parties du cours, celles situées avant la partie sur les outils, où seront expliqués le fonctionnement de la compilation, comment utiliser des compilateurs, des éditeurs de texte, et des débogueurs, présenter les plus connus, puis comment on "fusionne tout" dans un ide, et enfin faire une présentation des ide les plus connus et de leur configuration. (cf plan du cours)

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte