Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème avec un programme

    31 janvier 2019 à 19:30:46

    Je ne comprend pas ou est mon erreur merci de m'aider car il ne veut pas se compiler.

    Les erreurs que j'ai sont: ||=== Build: Debug in Jeux Asteroide (compiler: GNU GCC Compiler) ===|

    include\vaisseau.h|12|warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11|

    include\vaisseau.h|12|warning: extended initializer lists only available with -std=c++11 or -std=gnu++11|

    include\vaisseau.h|12|warning: extended initializer lists only available with -std=c++11 or -std=gnu++11|

    C:\Users\....Desktop\c++\Jeux Asteroide\main.cpp||In function 'int main()':|

    C:\Users\....Desktop\c++\Jeux Asteroide\main.cpp|11|warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]|

    C:\Users\....\Desktop\c++\Jeux Asteroide\main.cpp|11|error: 'vaisseau' does not name a type|

    C:\Users\.....\Desktop\c++\Jeux Asteroide\main.cpp|19|error: 'vaisseau' was not declared in this scope|

    C:\Users\....\Desktop\c++\Jeux Asteroide\main.cpp|25|error: 'vaisseau' was not declared in this scope|

    ||=== Build failed: 3 error(s), 4 warning(s) (0 minute(s), 0 second(s)) ===|

    ça c'est le main 

    #include <iostream>
    #include <SFML/Graphics.hpp>
    #include "vaisseau.h"
    
    
    using namespace std;
    
    int main()
    {
        sf::RenderWindow fenetre(sf::VideoMode(800, 600), "Asteroide!");
        auto vaisseau = Vaisseau{};
        while(fenetre.isOpen()) {
                 sf::Event event;
                while(fenetre.pollEvent(event)){
                    if(event.type == sf::Event::Closed){
                        fenetre.close();
                    }
                    if(event.type == sf::Event::KeyPressed){
                            vaisseau.avancer();
    
                    }
    
                }
                 fenetre.clear(sf::Color::Blue);
                 vaisseau.afficher(fenetre);
                 fenetre.display();
        }
        return 0;
    }
    

    ça c'est le vaisseau.h

    #ifndef VAISSEAU_H_INCLUDED
    #define VAISSEAU_H_INCLUDED
    #include <SFML/Graphics.hpp>
    
    class Vaisseau {
    
        public:
        void avancer();
        void afficher(sf::RenderWindow& fenetre);
    
        private:
        sf::CircleShape cercle {10};
    };
    
    #endif // VAISSEAU_H_INCLUDED
    

    et ça c'est le vaisseau.cpp 

    #include <vaisseau.h>
    
    
    
    void Vaisseau::avancer() {
        cercle.move(10,0);
    
    }
    
    void Vaisseau::afficher(sf::RenderWindow& fenetre){
        fenetre.draw(cercle);
    
    }
    
    

    PS: Le projet n'est absolument pas fini et je suis débutant merci de votre aide et de votre compréhension.


    • Partager sur Facebook
    • Partager sur Twitter
      31 janvier 2019 à 20:05:50

      Bonjour,

      en fait les erreurs viennent du fait que tu écris du C++ moderne et que le compilateur est en mode C++ "ancien" d'avant 2011. Les erreurs t'indiquent la séquence à mettre dans ta commande de compilation :   -std=c++11

      • Partager sur Facebook
      • Partager sur Twitter

      En recherche d'emploi.

        31 janvier 2019 à 20:09:31

        Dalfab a écrit:

        Bonjour,

        en fait les erreurs viennent du fait que tu écris du C++ moderne et que le compilateur est en mode C++ "ancien" d'avant 2011. Les erreurs t'indiquent la séquence à mettre dans ta commande de compilation :   -std=c++11


        Et comment on le change si tu sais faire ? :p
        • Partager sur Facebook
        • Partager sur Twitter
          31 janvier 2019 à 21:13:03

          Commence par mettre à jour le compilateur, car si c++11 n'est pas comprit avec gcc, alors le compilateur est ancien (~4ans) puisque cela fait un bon moment que c++14 est activé par défaut.

          > Et comment on le change si tu sais faire

          Ça dépend de l'IDE, mais il y a toujours un endroit où mettre des options pour le compilateur.

          • Partager sur Facebook
          • Partager sur Twitter

          Problème avec un programme

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown