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

wxWidgets Discussion :

erreur a la compilation sous linux


Sujet :

wxWidgets

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 49
    Points : 21
    Points
    21
    Par défaut erreur a la compilation sous linux
    Bonjour,

    Une erreur pointe vers ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include <GL/gl.h>
    #include <wx/wx.h>
    #include <wx/glcanvas.h>
     
     
     
    #ifndef GL_WINDOW_H
    #define GL_WINDOW_H
     
     
    class GL_Window : public wxGLCanvas {
        wxFrame* parent ;
    et qui me dis : error: expected class-name before ‘{’ token
    et je ne vois ce qui peut en être la source. Pourriez vous m'aider ?

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 49
    Points : 21
    Points
    21
    Par défaut
    si vous avez besoin de plus de précisions, je peux peut être vous les fournir

  3. #3
    Membre éprouvé Avatar de Jérémy Lefevre
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 898
    Points : 969
    Points
    969
    Par défaut
    oui quelles sont tes erreurs??
    Rien ne se perd, rien ne se crée, tout se transforme

    ------- -------

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    wxGLCanvas étant censé être défini dans wx/glcanvas.h, il suffit de regarder dedans pour savoir pourquoi il ne le trouve pas. Entre autre on trouve :

    Conclusion : il faut mettre wxUSE_GLCANVAS à 1 dans le fichier de config de wxWidgets (setup.h), ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // Setting wxUSE_GLCANVAS to 1 enables OpenGL support. You need to have OpenGL
    // headers and libraries to be able to compile the library with wxUSE_GLCANVAS
    // set to 1. Note that for some compilers (notably Microsoft Visual C++) you
    // will need to manually add opengl32.lib and glu32.lib to the list of
    // libraries linked with your program if you use OpenGL.
    //
    // Default is 0.
    //
    // Recommended setting: 1 if you intend to use OpenGL, 0 otherwise
    #define wxUSE_GLCANVAS       0

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 49
    Points : 21
    Points
    21
    Par défaut
    le hic c'est qu'il est déjà a 1, je suis sous windows, je vais essayer sous linux

  6. #6
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    En fait le problème vient surement du fait que la bibliothèque wxWidgets n'a pas été compilée avec l'option --with-opengl.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 49
    Points : 21
    Points
    21
    Par défaut
    je suis sous linux et j'ai fais un
    find / setup.h
    et apparament il ne trouve pas le fichier
    est ce que c'est bien ce nom là sous linux ?
    sinon j'ai essayé :
    make -with-opengl
    mais au lieu de compiler il me met un rappel de l'usage de la commande make, d'habitude je vais de le répertoire où il y a les fichiers et je tape juste 'make' et ça marche (quand je n'ai pas besoin d'opengl), est ce que j'ai bien tapé ce qu'il fallait ?

  8. #8
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Euh c'est configure --with-opengl, pas make

    Il faut lire la doc, elle est instructive !

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 49
    Points : 21
    Points
    21
    Par défaut
    c'est y est j'ai recompilé, mais j'ai d'autres erreurs parmi lesquelles les commandes opengl que le compilo ne reconnait pas
    et la fonction wxGetApp qui n'est pas utilisée dans mon code :


    main_GL_Window.o: In function `wxGetApp()':
    main_GL_Window.cpp.text+0x0): multiple definition of `wxGetApp()'
    main_GL_Window.o:main_GL_Window.cpp.text+0x0): first defined here
    main_GL_Window.o: In function `wxCreateApp()':
    main_GL_Window.cpp.text+0x1ee): multiple definition of `wxCreateApp()'
    main_GL_Window.o:main_GL_Window.cpp.text+0x1ee): first defined here
    main_GL_Window.o.bss+0x0): multiple definition of `wxTheAppInitializer'
    main_GL_Window.o.bss+0x0): first defined here
    main_GL_Window.o: In function `main_GL_Window::OnInit()':
    main_GL_Window.cpp.text+0x94): multiple definition of `main_GL_Window::OnInit()'
    main_GL_Window.o:main_GL_Window.cpp.text+0x94): first defined here
    main_GL_Window.o: In function `main':
    main_GL_Window.cpp.text+0x1c4): multiple definition of `main'
    main_GL_Window.o:main_GL_Window.cpp.text+0x1c4): first defined here
    main_GL_Window.o: In function `GL_Window::~GL_Window()':
    main_GL_Window.cpp.text._ZN9GL_WindowD1Ev[GL_Window::~GL_Window()]+0x17): undefined reference to `wxGLCanvas::~wxGLCanvas()'
    GL_Window.o: In function `GL_Window::OnSize(wxPaintEvent&)':
    GL_Window.cpp.text+0x205): undefined reference to `glViewport'

  10. #10
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    tu as de sérieux problèmes à l'édition de liens, peux tu nous montrer un peu de code pour qu'on en sache plus.

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 49
    Points : 21
    Points
    21
    Par défaut
    oké, une partie de la classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    #ifndef GL_WINDOW_H
    #define GL_WINDOW_H
     
    #include <GL/gl.h>
    #include <wx/wx.h>
    #include <wx/glcanvas.h>
     
     
    class GL_Window : public wxGLCanvas
    {
        wxGLCanvas *monWxGLCanvas ;
        float rotY ;
        bool fullscreen ;
        wxFrame* parent ;
        void cube(float dim);
     
     
        DECLARE_EVENT_TABLE();
     
        public:
            GL_Window(wxFrame* parent, wxWindowID id, const wxPoint & pos, const wxSize & size, long style,
                      const wxString & name,
                      int * attribList ,
                      const wxPalette& palette = wxNullPalette);
    et le construteur (manque les méthodes) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    GL_Window::GL_Window(wxFrame* parent, wxWindowID id, const wxPoint & pos, const wxSize & size, long style,
                      const wxString & name,
                      int * attribList,
                      const wxPalette& palette)
                      :wxGLCanvas(parent, id, attribList,pos, size, style, name, palette)
    {
          parent = new wxFrame(0, id,"tp GL_Window", pos, size, style, name);
          parent->Show(true);
          monWxGLCanvas = new wxGLCanvas (parent, wxID_ANY, attribList, pos, size, 0, "nom canvas", palette);
          monWxGLCanvas->SetCurrent();
    }
    si vous avez besoin de plus dites le moi.

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 49
    Points : 21
    Points
    21
    Par défaut
    je rajoute le programme principal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    #include "GL_Window.h"
    #include "main_GL_Window.h"
    #include <wx/wx.h>
    #include <wx/glcanvas.h>
     
     
    IMPLEMENT_APP(main_GL_Window)
     
     
    bool main_GL_Window::OnInit()
    //int main()
    {
           int attributelist[] = {WX_GL_RGBA, WX_GL_DOUBLEBUFFER, 0};
           wxFrame *truc=NULL ;
           GL_Window monGL_Window(truc, -1, wxDefaultPosition, wxDefaultSize, 0, _T("GL_Canvas"), attributelist) ;
           return true ;
    }

  13. #13
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    class GL_Window : public wxGLCanvas
    {
        wxGLCanvas *monWxGLCanvas ;
    Oulà on s'arrête ici, qu'est ce que tu fais là ? tu es en train de créer une classe qui dérive de wxGLCanvas, et tu crée un wxGLCanvas à l'intérieur ? Mais pourquoi ? Tu veux créer une fenêtre OpenGL dans une fenêtre OpenGL ?

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 49
    Points : 21
    Points
    21
    Par défaut
    heu non c'est effectivement une erreur , je vais réessayer sous linux

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 49
    Points : 21
    Points
    21
    Par défaut
    j'ai les mêmes erreurs (a peu près)

  16. #16
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    j'ai les mêmes erreurs (a peu près)
    Tu as changé quoi dans ton code ?

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 49
    Points : 21
    Points
    21
    Par défaut
    j'ai enlévé le wxGLCanvas du constructeur et de la classe, et le setCurrent aussi.

  18. #18
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    T'a déjà programmé avec wxWidgets sérieusement ? Parce que je vois des trucs assez hallucinants ...

    La construction de la fenêtre père par la fenêtre fille, la construction d'une fenêtre OpenGL à l'intérieur d'une fenêtre OpenGL, le point virgule à la fin d'une macro wxWidgets (DECLARE_EVENT_TABLE() ), bref il y a plein de truc vraiment bizarre ...

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 49
    Points : 21
    Points
    21
    Par défaut
    non en fait je débute. mais qu'est que tu veux dire par "La construction de la fenêtre père par la fenêtre fille" ?

  20. #20
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Ceci :

    GL_Window::GL_Window(wxFrame* parent, wxWindowID id, const wxPoint & pos, const wxSize & size, long style,
    const wxString & name,
    int * attribList,
    const wxPalette& palette)
    :wxGLCanvas(parent, id, attribList,pos, size, style, name, palette)
    {
    parent = new wxFrame(0, id,"tp GL_Window", pos, size, style, name);
    Déjà c'est une abération que de modifier un pointeur local (sauf bonne raison mais là j'en voit pas), et ensuite faire créer la fênêtre père par la fenêtre fille n'a vraiement rien de logique.

    Ta construction est donc totalement fausse. (et je doute qu'à la compilation tu n'ais que les erreur que tu nous as donné)

Discussions similaires

  1. Erreur lors de la compilation sous Linux
    Par lpa dans le forum PhysX et APEX
    Réponses: 15
    Dernier message: 14/10/2011, 17h10
  2. Comment gérer les erreurs de la compilation sous linux ?
    Par petitclem dans le forum Autres éditeurs
    Réponses: 15
    Dernier message: 01/08/2008, 15h53
  3. [mono] Compilation sous linux, erreur dans windows
    Par AlexandreP dans le forum Mono
    Réponses: 6
    Dernier message: 18/08/2006, 19h56
  4. erreur de compilation sous linux
    Par petdelascar dans le forum C
    Réponses: 11
    Dernier message: 21/12/2005, 20h10
  5. pb de compilation sous linux
    Par prsieux dans le forum Linux
    Réponses: 10
    Dernier message: 20/12/2005, 17h49

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