IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

[Code::Blocks] Avalanche d'avertissemnts à cause de la SFML


Sujet :

C++

  1. #1
    Membre habitué
    Avatar de Glân von Brylân
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2014
    Messages : 133
    Points : 186
    Points
    186
    Par défaut [Code::Blocks] Avalanche d'avertissemnts à cause de la SFML
    Bonjour,

    J'ai récemment installé SFML et configuré Code::Blocks pour l'utiliser. Oh, tout fonctionne parfaitement bien. Seulement, je reçois à chaque compilation toute une flopée d'avertissements qui viennent des fichiers de la SFML.



    C'est plutôt gênant pour voir les problèmes qui viennent de mon code...et on est d'accord que je ne vais pas juste désactiver ces messages pour être tranquille ! (en plus j'ai essayé de désactiver les message de Weffc++, ça n'a rien changé)
    Alors par exemple certains messages parlent de destructeurs non virtuels. Je pourrais modifier le code de la SFML mais je préfère ne pas m'y risquer...Et puis, pour la majorité, il est question d'un problème avec des pointeurs membres ; je ne comprend même pas ce que disent ceux-ci, d'ailleurs.

    Si quelqu'un a une solution...Merci d'avance de me la donner.
    Les pointeurs intelligents, c'est mignon mais trop long à écrire.

  2. #2
    Membre chevronné Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Points : 2 160
    Points
    2 160
    Par défaut
    Bonjour

    Pour ce genre de choses, je t'encourage à poster directement sur le forum de la SFML. Éventuellement, tu pourras même proposer de faire un merge request pour corriger ceci.

  3. #3
    Membre habitué
    Avatar de Glân von Brylân
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2014
    Messages : 133
    Points : 186
    Points
    186
    Par défaut
    Merci j'y vais de suite, mais...un "merge request" ? Qu'est-ce que tu entends par là ?
    Les pointeurs intelligents, c'est mignon mais trop long à écrire.

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Note pour l'erreur: Vu qu'on ne référence jamais virtuellement NonCopyable (enfin, ça m'étonnerait qu'on le fasse), son destructeur devrait être protected non-virtuel. Et si GCC geule toujours dessus, alors c'est un bug dans -Weffc++ et c'est chez GCC qu'il faut se plaindre.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    C'est des warning, tu n'as pas à t'en soucier.
    Pourquoi ne pas utiliser directement les binaires compilés ?
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  6. #6
    Membre habitué
    Avatar de Glân von Brylân
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2014
    Messages : 133
    Points : 186
    Points
    186
    Par défaut
    Oui ce ne sont que des warnings, mais comme je le disais, il y en a tellement que j'ai du mal à voir les miens...
    Les binaires compilés ? (désolé d'être un gros inculte ^^') Moi j'ai fait comme sur sur le tuto officiel...Et comme ça fonctionne, je n'ai pas cherché plus loin.
    (si ça peut être utile j'utlise GCC 4.7.1)
    Les pointeurs intelligents, c'est mignon mais trop long à écrire.

  7. #7
    Membre chevronné Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Points : 2 160
    Points
    2 160
    Par défaut
    Citation Envoyé par Neoflash Okashi Voir le message
    Merci j'y vais de suite, mais...un "merge request" ? Qu'est-ce que tu entends par là ?
    Gitorious.org et GitHub offre des dépôts git, un logiciel de gestion de versions (décentralisé). Lorsqu'on veut proposer une modification, il est courant de cloner le dépot contenant le code source, faire la modification et la proposer pour la fusionner avec le dépôt original. Faire la proposition de fusion est appelé merge request sur Gitorious.org et pull request sur GitHub.


    Citation Envoyé par Bousk Voir le message
    C'est des warning, tu n'as pas à t'en soucier.
    Pas de façon générale
    Les warnings sont importants car il peuvent détecter de vrais erreurs (par exemple : utilisation sans initialisation).

    Citation Envoyé par Bousk Voir le message
    Pourquoi ne pas utiliser directement les binaires compilés ?
    Je n'ai pas vérifié ce que fait la SFML, mais une classe comme sf::NonCopyable me parait être un bon candidat pour être header-only.

    Citation Envoyé par Neoflash Okashi Voir le message
    Les binaires compilés ?
    Un début de réponse : Wikipédia - Bibliothèque logicielle.

  8. #8
    Membre habitué
    Avatar de Glân von Brylân
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2014
    Messages : 133
    Points : 186
    Points
    186
    Par défaut
    Oui, j'aime les warnings (merci le compilo de me rappeler que je dois initiliser variables et pointeur même si j'ai la flemme, par exemple)

    La SFML (Simple and Fast Multimedia Library) se veut une alternative orientée objet à la SDL.
    Oui, NonCopyable est header-only, même si je ne sais pas si cette information change quoi que ce soit.

    Quand à la page wikipedia, désolé de te dire qu'elle ne m'a pas appris grand-chose — je ne suis pas débutant à ce point.
    Les pointeurs intelligents, c'est mignon mais trop long à écrire.

  9. #9
    Membre chevronné Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Points : 2 160
    Points
    2 160
    Par défaut
    Par « binaires compilés », Bousk parlait probablement des bibliothèques déjà compilées disponibles sur le site de la SFML (.so, .a, .dll).

    Si des warnings sont dus au code source de la bibliothèque :
    - soit c'est dans les headers et tu as le warning
    - soit c'est dans le code déjà compilé (la bibliothèque linkée) et tu n'as pas de warning (lors d'une utilisation "classique" de la bibliothèque)
    (Voilà ce que ça change pour les warnings.)

  10. #10
    Membre habitué
    Avatar de Glân von Brylân
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2014
    Messages : 133
    Points : 186
    Points
    186
    Par défaut
    Pourtant, j'ai bien linké des .a...
    Les pointeurs intelligents, c'est mignon mais trop long à écrire.

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par Ehonn Voir le message
    Pas de façon générale
    Les warnings sont importants car il peuvent détecter de vrais erreurs (par exemple : utilisation sans initialisation).
    Ce sont des warning internes à la lib, donc on s'en moque. Une lib est sensée remplir sa fonction correctement, tu la prends telle qu'elle et lui fais confiance. Si tu fais pas confiance à une lib, tu ne l'utilises pas.
    S'attarder sur ce genre de warning est une pure perte de temps.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  12. #12
    Membre habitué
    Avatar de Glân von Brylân
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2014
    Messages : 133
    Points : 186
    Points
    186
    Par défaut
    Je ne sais pas si tu as suivi mais la question n'est pas de se demander pourquoi il y a ces warnings mais justement de les faire disparaître...
    Les pointeurs intelligents, c'est mignon mais trop long à écrire.

  13. #13
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Sans pour autant niveler la qualité du code par le bas.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  14. #14
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Tu ne peux pas juste mettre un filtre dans l'IDE?
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  15. #15
    Membre habitué
    Avatar de Glân von Brylân
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2014
    Messages : 133
    Points : 186
    Points
    186
    Par défaut
    Bon, j'ai trouvé la solution. En fait je linkais la SFML uniquement pour le projet en cours et non pour Code::Blocks en général. En faisant l'inverse je n'ai plus ces warnings intempestifs.
    Merci quand même pour le support !
    Les pointeurs intelligents, c'est mignon mais trop long à écrire.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Compiler glu.h sous Code::Blocks
    Par allanp8 dans le forum OpenGL
    Réponses: 10
    Dernier message: 18/11/2007, 00h56
  2. Code blocks ajouter un .lib
    Par gl0be dans le forum Code::Blocks
    Réponses: 7
    Dernier message: 09/09/2006, 15h04
  3. [Code::Block] Traduction francaise?
    Par Zenol dans le forum Code::Blocks
    Réponses: 3
    Dernier message: 20/02/2006, 16h06
  4. [code::blocks] Completion de code
    Par anykeyh dans le forum Code::Blocks
    Réponses: 1
    Dernier message: 20/12/2005, 16h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo