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 :

Erreur d'inclusion opengl


Sujet :

C++

  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Par défaut Erreur d'inclusion opengl
    Bonjour, je reprend la prog après de longs moi d'arrêt et je suis extrêment rouillé ^^
    J'ai des erreurs a la compialtion que je ne comprend pas :

    1>c:\documents and settings\adrien\bureau\ey-lord\src\engine\entity\mainmenu.cpp(54) : error C2065: 'GL_LINES' : undeclared identifier
    1>c:\documents and settings\adrien\bureau\ey-lord\src\engine\entity\mainmenu.cpp(54) : error C3861: 'glBegin': identifier not found
    1>c:\documents and settings\adrien\bureau\ey-lord\src\engine\entity\mainmenu.cpp(56) : error C3861: 'glColor3d': identifier not found
    1>c:\documents and settings\adrien\bureau\ey-lord\src\engine\entity\mainmenu.cpp(57) : error C3861: 'glVertex3d': identifier not found
    1>c:\documents and settings\adrien\bureau\ey-lord\src\engine\entity\mainmenu.cpp(58) : error C3861: 'glVertex3d': identifier not found
    1>c:\documents and settings\adrien\bureau\ey-lord\src\engine\entity\mainmenu.cpp(61) : error C3861: 'glColor3d': identifier not found
    1>c:\documents and settings\adrien\bureau\ey-lord\src\engine\entity\mainmenu.cpp(62) : error C3861: 'glVertex3d': identifier not found
    1>c:\documents and settings\adrien\bureau\ey-lord\src\engine\entity\mainmenu.cpp(63) : error C3861: 'glVertex3d': identifier not found
    1>c:\documents and settings\adrien\bureau\ey-lord\src\engine\entity\mainmenu.cpp(66) : error C3861: 'glColor3d': identifier not found
    1>c:\documents and settings\adrien\bureau\ey-lord\src\engine\entity\mainmenu.cpp(67) : error C3861: 'glVertex3d': identifier not found
    1>c:\documents and settings\adrien\bureau\ey-lord\src\engine\entity\mainmenu.cpp(68) : error C3861: 'glVertex3d': identifier not found
    1>c:\documents and settings\adrien\bureau\ey-lord\src\engine\entity\mainmenu.cpp(69) : error C3861: 'glEnd': identifier not found
    Voici les includes de ma classe :

    #include <SDL\SDL_opengl.h>
    #include <gl\gl.h>
    #include <gl\glu.h>
    ( les deux derniers sont sans doute facultatifs voir redondants, mais j'ai testé avec /sans, pas de changement )

    Le code qui pose problème :

    /* on affiche un repere */
    glBegin(GL_LINES);
    /* l'axe des x */
    glColor3d(1.0, 0.0, 0.0);
    glVertex3d(0.0,0.0,0.0);
    glVertex3d(1.0,0.0,0.0);

    /* l'axe des y */
    glColor3d(0.0, 1.0, 0.0);
    glVertex3d(0.0,0.0,0.0);
    glVertex3d(0.0,1.0,0.0);

    /* l'axe des z */
    glColor3d(0.0, 0.0, 1.0);
    glVertex3d(0.0,0.0,0.0);
    glVertex3d(0.0,0.0,1.0);
    glEnd();
    Ce code fonctionnent si je le met dans une autre classe qui possède en gros les même includes ...

    Merci d'avance !

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Ce n'est pas plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #include <SDL/SDL.h>
    #include <GL/gl.h>
    #include <GL/glu.h>

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Par défaut
    Ma syntaxe est bancale, mais les includes marchent ... (pour répondre à ton message : Non, en réécrivant tout correctement, cela ne change rien :/ )

  4. #4
    Membre éclairé Avatar de Suryavarman
    Homme Profil pro
    Développeur 3D
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur 3D
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Par défaut
    en changeant l'ordre des includes peut être ?
    SDL je le mettrait en dernier pour être logique. Mais ça se trouve que ça change rien :p.
    D'aileur SDL ne suffirait il pas ?

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Bon, ça compile parfaitement chez moi quelque soit les includes.
    Comment compiles-tu ? Qu'utilises-tu ? Quelle est ta plateforme ?
    Peux-tu envoyer tout le fichier et toutes les erreurs de compilation ?

  6. #6
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Par défaut
    De mémoire SDL.h inclu lui meme les gl.h et glu.h ...donc bon ca devrai suffire en effet.

    Comment compiles-tu ? Qu'utilises-tu ? Quelle est ta plateforme ?
    Les erreurs de compi sont toutes la. Si je commente le code de mon premier post, aucune erreur .
    Je complie sous windows XP, Visual 2005, en mode debug ( concernant les option de compilation, j'en ai un paquet dont notament en link :SDLmain.lib SDL.lib opengl32.lib glu32.lib glut32.lib DevIL.lib ILU.lib ILUT.lib fmodvc.lib tinyxmld_STL.lib lua_debug.lib )

    Voici le code de la classe incriminé :

    .hpp
    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
    25
    26
    27
    28
    29
    30
    31
     
    #include <GL/gl.h>
    #include <GL/glu.h>
    #include <SDL/SDL.h>
     
    #include <Engine/Entity/Entity.hpp>
    #include <Tools/Logger.hpp>
    #include <string>
     
     
    #ifndef MAINMENU_HPP
    #define MAINMENU_HPP
     
    	class MainMenu : public Entity 
    	{	
    		public:
     
    			MainMenu(); 
     
    		   ~MainMenu();
     
    			void Init();
     
    			void Update();
     
    			void Render();
     
    			void ProcessInputEvent(InputEvent & InputEventRecieved);
    	}; 
     
    #endif // MAINMENU_HPP
    .cpp
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
     
    #include <Engine/Entity/MainMenu.hpp>
    #include <Engine/Kernel/Tasks/InputTask.hpp>
    // Constructor
    MainMenu::MainMenu()
    {
    }
     
    // Destructor
    MainMenu::~MainMenu()
    {
    	InputTask::UnRegisterEvent(113,"Key","Quiter",m_Id);
    	InputTask::UnRegisterEvent(1,"Mouse","New",m_Id);
    }
     
    // Init the menu's data
    void MainMenu::Init()
    {
    	InputEvent E ;
    	E.m_Condition = 113 ;
    	E.m_Name = "Quiter" ;
    	E.m_Owner = this ;
    	E.m_ConditionType = "Key";
    	E.m_ConditionState = PUSHED ;
    	InputTask::RegisterEvent(E);
     
    	InputEvent Ee ;
    	Ee.m_Condition = 1 ;
    	Ee.m_Name = "New" ;
    	Ee.m_Owner = this ;
    	Ee.m_ConditionType = "Mouse";
    	Ee.m_ConditionState = PUSHED ;
    	InputTask::RegisterEvent(Ee);
     
    /*	InputEvent Ea ;
    	Ea.m_Condition = 0 ;
    	Ea.m_Name = "Bouge" ;
    	Ea.m_Owner = this ;
    	Ea.m_ConditionType = "MouseMotion";
    	Ea.m_ConditionState = 0 ;
    	InputTask::RegisterEvent(Ea);*/
    }
     
    // Update the menu (animation?)
    void MainMenu::Update()
    {
     
    }
     
    // Render the Menu on the screen
    void MainMenu::Render()
    {
     /* on affiche un repere */
      glBegin(GL_LINES);
        /* l'axe des x */
        glColor3d(1.0, 0.0, 0.0);
        glVertex3d(0.0,0.0,0.0);
        glVertex3d(1.0,0.0,0.0);
     
        /* l'axe des y */
        glColor3d(0.0, 1.0, 0.0);
        glVertex3d(0.0,0.0,0.0);
        glVertex3d(0.0,1.0,0.0);
     
        /* l'axe des z */
        glColor3d(0.0, 0.0, 1.0);
        glVertex3d(0.0,0.0,0.0);
        glVertex3d(0.0,0.0,1.0);
      glEnd();
    }
     
    // Process every event recieved
    void MainMenu::ProcessInputEvent(InputEvent & InputEventRecieved)
    {
    		Log(LOG_ALL,LOG_MISC) << "InputEvent recived by " << m_Id << " is : " << InputEventRecieved.m_Name << ". Keystate : " << InputEventRecieved.m_ConditionState
    			<<  " MouseX: " << InputEventRecieved.m_MouseX << " MouseY: " << InputEventRecieved.m_MouseY ;
    }

  7. #7
    Membre éclairé Avatar de Suryavarman
    Homme Profil pro
    Développeur 3D
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur 3D
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Par défaut
    Juste une petite remarque qui va pas résoudre le problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #include <GL/gl.h>
    #include <GL/glu.h>
    #include <SDL/SDL.h>
    tu peus les mettre dans le cpp, ta classe n'a pas besoin de les connaître pour se définir.

  8. #8
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Par défaut
    Si je les déplace dans le .cpp j'ai environ 250 erreurs en plus .

  9. #9
    Membre éclairé Avatar de Suryavarman
    Homme Profil pro
    Développeur 3D
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur 3D
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <Engine/Entity/Entity.hpp>
    #include <Tools/Logger.hpp>
    Ca voudrais dire que les deux là ont besoin des includes plus haut ?
    D'ailleur pourquoi en hpp y a pas de template là ? (par curiosité j'ai jamais fait de .hpp)
    EDIT:
    Pourquoi utilise tu Glut32.lib vu que tu utilises la sdl ?

  10. #10
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Bon, bah après mise en commentaire dans tes sources de tout le code concernant les classes que je ne peux pas inventer, ça compile parfaitement...
    Tu n'as pas joint l'ensemble des traces de compilation.
    Tu as essayé de compiler que le bout de code qui pose problème dans un projet à part ?

  11. #11
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Par défaut
    Le bout de code marche dans un autre projet et est trivial, je me doute que le problème est autrepart mais je ne vois aps ou, j'espèrai que vous auriez une idée ^^

    Tu n'as pas joint l'ensemble des traces de compilation.
    Je n'ai pas saisit, il manque quoi ?

  12. #12
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par Clad3 Voir le message
    Le bout de code marche dans un autre projet et est trivial, je me doute que le problème est autrepart mais je ne vois aps ou, j'espèrai que vous auriez une idée ^^


    Je n'ai pas saisit, il manque quoi ?
    Bonjour,
    Il me semble qu'il faut windows.h avec les include de opengl avec visual.

  13. #13
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Par défaut
    Avec ou sans windows.h, le problème n'a pas changé, mais en effet, je crois qu'il ets bon de l'inclure ( cela dit, je doit l'avoir en aval déjà inclu dans mon projet je pense).

  14. #14
    screetch
    Invité(e)
    Par défaut
    n'aurais tu pas oublié de fermer un namespace ou un truc de ce gout la ?
    au pire, envoie moi tes sources zippees je devrais pouvoir trouver parce que la malheureusement, l'erreur est ailleurs (sans doute a coté de la verité) et on a pas de base pour trouver ^^

  15. #15
    screetch
    Invité(e)
    Par défaut
    autre idée, n'as tu pas defini __gl_h_ ou __GL_H__ quelque part ailleurs dans ton code, voire dans la SDL ? le header opengl commence par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #ifndef __gl_h_
    #ifndef __GL_H__
     
    #define __gl_h_
    #define __GL_H__

  16. #16
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Par défaut
    Je n'ai aps créer de namespace, donc je n'ai pas du en ouvrir

    Concernant un "ifdef", cela métonnerai que j'ai quelquechose dans ce gout, et au coeur de la SDL, je pense qu'il ont gérer leur code de facons a ce que cela ne pose pas de problème ( je n'ai pas bidouillé les sources de la SDL) .

    Voila ci-joint en .rar les source de mon projets. Merci d'avance.
    Fichiers attachés Fichiers attachés

  17. #17
    screetch
    Invité(e)
    Par défaut
    euh

    et bien dans MainMenu.cpp j'ai ajouté tout en haut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #include <windows.h>
    #include <gl/gl.h>
    #include <gl/glu.h>
    et tout semble compiler.

  18. #18
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Par défaut
    Chez moi, toujours pas, j'ai beau tout essayer, rien n'y fait. J'ai simplifier ma classe au maximum, viré le seul include vers cette classe dans le reste de mon prog, et rie n'y ait, j'ai toujours les même erreurs !! Ca me rend fou ;o)

    EDIT : Ups, l'include dans le .cpp marche ...mais je ne comprend pas pourquoi ca ne marche pas dans le .hpp ..

  19. #19
    screetch
    Invité(e)
    Par défaut
    ben moi ca a marche dans le hpp aussi il me semble.

  20. #20
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Par défaut
    Ca devrai marcher dans le hpp mais je ne vois pas pourquoi ca ne fonctionne pas ...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [JpGraph] Erreur à l'inclusion de JPGraph sous EasyPHP
    Par Orcieres dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 01/10/2008, 23h27
  2. [PHP-JS] Erreur d'inclusion avec un script
    Par Equinoxe5 dans le forum Langage
    Réponses: 2
    Dernier message: 23/08/2007, 22h57
  3. Erreur d'inclusion
    Par malves dans le forum Linux
    Réponses: 1
    Dernier message: 12/03/2007, 01h13
  4. Erreur sur inclusion types.h avec cygwin
    Par Bayard dans le forum Réseau
    Réponses: 12
    Dernier message: 12/11/2006, 16h48
  5. j'ai un erreur avec l'OpenGL
    Par Waldung dans le forum C++Builder
    Réponses: 1
    Dernier message: 20/07/2006, 15h18

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