-Werror n'est pas ton ami (2017)

22 Peut 2017 par Philippe Johnston • Dernier mis à jour 8 Septembre 2023

je vouloir à faire un peu points en haut devant à court-circuit commun malentendus avec ce article :

je avoir un zéro avertissement politique sur mon projets. je tourner sur un beaucoup de avertissements. -Mur, -Wextra, et un entier hôte de spécifique avertissement drapeaux. je supplément le compilateur avertissements avec analyse depuis un suite de statique analyse outils, y compris cppcheck, clang-bien rangé, et bruit analyse-construction. Zéro avertissement mise en vigueur arrive sur le construire serveur. Tirer demandes volonté être rejeté et construit volonté être marqué comme les échecs si avertissements sont présent.

je avoir à État tous de ce parce que beaucoup personnes pense que mon Ne pas aimer de -Erreur moyens que je suis relâché sur avertissements. C'est simplement pas le cas.

Donc, alors, qu'est-ce que c'est faux avec -Erreur ?

-L'erreur est un compilateur drapeau que causes tous compilateur avertissements à être traité comme les erreurs. Développeurs OMS activer -Les erreurs sont fabrication un déclaration: nous se soucier à propos notre code base, et nous ne le fera pas accepter avertissements ici. je comprendre le motivation pour permettre le drapeau -Erreur : je aussi avoir un zéro avertissement politique, et je détester quand développeurs ignorer avertissements.

Mon avis sur -Erreur est basé sur mon expériences comme un Open source responsable, un consommateur de autre des gens code, et un consultant OMS est en permanence sauter dans nouveau propriétaire code socles. je presque toujours trouver moi-même frustré par le présence de -Erreur. La plupart communément, je vérifier dehors le projet, tentative à construire il, et voir que il échoue à compiler parce que là est un avertissement. Pourquoi est mon construire échouer si je fait Non changements et ton code base permet zéro des avertissements ?

Le raison: -Une erreur crée un projet dépendance sur spécifique chaîne d'outils vendeurs et versions.

Différent vendeurs avoir différent avertissement ensembles et avertissement détection logique. Code que compile avec un chaîne d'outils sans avertissement peut pas faire donc avec un autre chaîne d'outils. Nous souvent voir ce avec notre Open source projets. Nous principalement utiliser Bruit, et il est un commun occurrence que notre CI serveur volonté rapport un avertissement quand compilation notre « sans avertissement » code avec CCG.

Chaque fois que un nouveau compilateur version est libéré, nouveau avertissements sont ajoutée, détection pour existant avertissements est amélioré, et expérimental avertissements peut être promu. Moins communément, nouveau variantes inclure autre changements que peut impact avertissement génération. Un exemple que vient à esprit est quand CCG 5.1.0 modifié le défaut C langue standard depuis gnu90 à gnu11. Quelques avertissements sont seulement activé quand ciblage C99 ou plus tard, donc n'importe qui compter sur le défaut (lequel nous ne le faites pas recommander) serait avoir vu nouveau avertissements après mise à jour.

Parfois avertissements sont pas même régulièrement généré avec le même chaîne d'outils fournisseur et version. Un exemple que vient à esprit est -Pragmas inconnus. je suis dans le habitude de en utilisant #pragma marque à fournir plus gentil EDI interactions (par exemple., sectionnement code et ajouter "sauter à" points). Bruit accepte ce pragma sans n'importe lequel problème. CCG volonté générer un avertissement quand ce est utilisé. Mais le réel problème est que gcc volonté reconnaître #pragma marque sur MacOS, donc toi ne le fera pas voir le avertissement jusqu'à toi construire sur un autre

-Werror n'est pas ton ami (2017)

22 Peut 2017 par Philippe Johnston • Dernier mis à jour 8 Septembre 2023

je vouloir à faire un peu points en haut devant à court-circuit commun malentendus avec ce article :

je avoir un zéro avertissement politique sur mon projets. je tourner sur un beaucoup de avertissements. -Mur, -Wextra, et un entier hôte de spécifique avertissement drapeaux. je supplément le compilateur avertissements avec analyse depuis un suite de statique analyse outils, y compris cppcheck, clang-bien rangé, et bruit analyse-construction. Zéro avertissement mise en vigueur arrive sur le construire serveur. Tirer demandes volonté être rejeté et construit volonté être marqué comme les échecs si avertissements sont présent.

je avoir à État tous de ce parce que beaucoup personnes pense que mon Ne pas aimer de -Erreur moyens que je suis relâché sur avertissements. C'est simplement pas le cas.

Donc, alors, qu'est-ce que c'est faux avec -Erreur ?

-L'erreur est un compilateur drapeau que causes tous compilateur avertissements à être traité comme les erreurs. Développeurs OMS activer -Les erreurs sont fabrication un déclaration: nous se soucier à propos notre code base, et nous ne le fera pas accepter avertissements ici. je comprendre le motivation pour permettre le drapeau -Erreur : je aussi avoir un zéro avertissement politique, et je détester quand développeurs ignorer avertissements.

Mon avis sur -Erreur est basé sur mon expériences comme un Open source responsable, un consommateur de autre des gens code, et un consultant OMS est en permanence sauter dans nouveau propriétaire code socles. je presque toujours trouver moi-même frustré par le présence de -Erreur. La plupart communément, je vérifier dehors le projet, tentative à construire il, et voir que il échoue à compiler parce que là est un avertissement. Pourquoi est mon construire échouer si je fait Non changements et ton code base permet zéro des avertissements ?

Le raison: -Une erreur crée un projet dépendance sur spécifique chaîne d'outils vendeurs et versions.

Différent vendeurs avoir différent avertissement ensembles et avertissement détection logique. Code que compile avec un chaîne d'outils sans avertissement peut pas faire donc avec un autre chaîne d'outils. Nous souvent voir ce avec notre Open source projets. Nous principalement utiliser Bruit, et il est un commun occurrence que notre CI serveur volonté rapport un avertissement quand compilation notre « sans avertissement » code avec CCG.

Chaque fois que un nouveau compilateur version est libéré, nouveau avertissements sont ajoutée, détection pour existant avertissements est amélioré, et expérimental avertissements peut être promu. Moins communément, nouveau variantes inclure autre changements que peut impact avertissement génération. Un exemple que vient à esprit est quand CCG 5.1.0 modifié le défaut C langue standard depuis gnu90 à gnu11. Quelques avertissements sont seulement activé quand ciblage C99 ou plus tard, donc n'importe qui compter sur le défaut (lequel nous ne le faites pas recommander) serait avoir vu nouveau avertissements après mise à jour.

Parfois avertissements sont pas même régulièrement généré avec le même chaîne d'outils fournisseur et version. Un exemple que vient à esprit est -Pragmas inconnus. je suis dans le habitude de en utilisant #pragma marque à fournir plus gentil EDI interactions (par exemple., sectionnement code et ajouter "sauter à" points). Bruit accepte ce pragma sans n'importe lequel problème. CCG volonté générer un avertissement quand ce est utilisé. Mais le réel problème est que gcc volonté reconnaître #pragma marque sur MacOS, donc toi ne le fera pas voir le avertissement jusqu'à toi construire sur un autre

What's Your Reaction?

like

dislike

love

funny

angry

sad

wow