Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Irrlicht] Problème de compilation

visiblement cela vient d'openGL

Sujet résolu
    17 novembre 2007 à 23:35:19

    Bonjour,
    Je me permets de poster dans cette section afin de vous demander de l'assistance, car j'ai un problème.
    Voila, je suis sous Kubuntu 7.10, et j'essaie d'apprendre l'Irrlicht grâce au tutoriel qui se trouve sur le SdZ (Tuto non officiel). Et je suis ennuyé de voir une erreur apparaître à la compilation. J'aimerais vous rappeler que je travailile sous Kate, et que je compile moi même grâce à un makefile. Afin de vous faciliter la tâche, je vais mettre le contenu des fichiers ici:

    Irrlicht.cpp:
    1. #include <IRR/irrlicht.h>
    2. using namespace irr;
    3. int main(void)
    4. {
    5.   //Cette ligne va créer un contexte d'affichage OpenGL
    6.   IrrlichtDevice *device = createDevice (video::EDT_OPENGL, core::dimension2d<s32>(800,600),32,false,true,false,0);
    7.   //On associe un driver à la fenêtre
    8.   video::IVideoDriver* driver = device->getVideoDriver ();
    9.   //Et on crée un gestionnaire de scène (scenegraph)
    10.   scene::ISceneManager *scenegraph = device->getSceneManager ();
    11.   //Une boucle infinie
    12.   while (device->run ())
    13.       {
    14.         //On indique qu'on démarre la scène
    15.         driver->beginScene (true, true, video::SColor (255,255,255,255));
    16.         //On calcule le rendu
    17.         scenegraph->drawAll ();
    18.         //On affiche le rendu à l'écran
    19.         driver->endScene ();
    20.      }
    21.   //On libère la mémoire en détruisant le device
    22.   device->drop ();
    23.   return 0;
    24. }


    Makefile:
    1. prog: irrlicht.o
    2.         g++ -o prog irrlicht.o -lIrrlicht
    3. irrlicht.o : irrlicht.cpp
    4.         g++ -c -Wall irrlicht.cpp
    5. clean :
    6.         rm -f prog *.o


    Et voila l'erreur affichée:
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:421: undefined reference to `glTexEnvi'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:424: undefined reference to `glTexEnvi'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:426: undefined reference to `glTexEnvi'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:428: undefined reference to `glTexEnvi'
    /usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib/libIrrlicht.a(COpenGLDriver.o):/home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterial29: more undefined references to `glTexEnvi' follow
    /usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib/libIrrlicht.a(COpenGLDriver.o): In function `irr::video::COpenGLMaterialRenderer_LIGHTMAP::OnSetM:video::SMaterial&, irr::video::SMaterial const&, bool, irr::video::IMaterialRendererServices*)':
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:433: undefined reference to `glTexEnvf'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:434: undefined reference to `glTexEnvi'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:435: undefined reference to `glTexEnvi'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:436: undefined reference to `glTexEnvi'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:437: undefined reference to `glTexEnvi'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:443: undefined reference to `glTexEnvf'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:447: undefined reference to `glTexEnvf'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:450: undefined reference to `glTexEnvf'
    /usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib/libIrrlicht.a(COpenGLDriver.o): In function `irr::video::COpenGLMaterialRenderer_DETAIL_MAP::OnSer::video::SMaterial&, irr::video::SMaterial const&, bool, irr::video::IMaterialRendererServices*)':
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:487: undefined reference to `glDisable'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:491: undefined reference to `glTexEnvi'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:492: undefined reference to `glTexEnvi'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:500: undefined reference to `glTexEnvi'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:501: undefined reference to `glTexEnvi'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:503: undefined reference to `glTexEnvi'
    /usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib/libIrrlicht.a(COpenGLDriver.o):/home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterial04: more undefined references to `glTexEnvi' follow
    /usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib/libIrrlicht.a(COpenGLDriver.o): In function `irr::video::COpenGLMaterialRenderer_REFLECTION_2_LAYaterial()':
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:627: undefined reference to `glDisable'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:628: undefined reference to `glDisable'
    /usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib/libIrrlicht.a(COpenGLDriver.o): In function `irr::video::COpenGLMaterialRenderer_TRANSPARENT_ADD_Material(irr::video::SMaterial&, irr::video::SMaterial const&, bool, irr::video::IMaterialRendererServices*)':
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:200: undefined reference to `glDisable'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:202: undefined reference to `glBlendFunc'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:203: undefined reference to `glTexEnvi'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:204: undefined reference to `glEnable'
    /usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib/libIrrlicht.a(COpenGLDriver.o): In function `irr::video::COpenGLMaterialRenderer_TRANSPARENT_VERTUnsetMaterial()':
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:260: undefined reference to `glTexEnvi'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:261: undefined reference to `glTexEnvf'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:262: undefined reference to `glTexEnvf'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:263: undefined reference to `glTexEnvf'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:264: undefined reference to `glTexEnvf'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:265: undefined reference to `glTexEnvf'
    /usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib/libIrrlicht.a(COpenGLDriver.o):/home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterial66: more undefined references to `glTexEnvf' follow
    /usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib/libIrrlicht.a(COpenGLDriver.o): In function `irr::video::COpenGLMaterialRenderer_TRANSPARENT_VERTUnsetMaterial()':
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:268: undefined reference to `glDisable'
    /usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib/libIrrlicht.a(COpenGLDriver.o): In function `irr::video::COpenGLMaterialRenderer_SPHERE_MAP::OnSer::video::SMaterial&, irr::video::SMaterial const&, bool, irr::video::IMaterialRendererServices*)':
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:535: undefined reference to `glTexEnvi'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:540: undefined reference to `glTexEnvi'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:542: undefined reference to `glDisable'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:544: undefined reference to `glTexGeni'
    /home/darky/Desktop/irrlicht-1.3.1/source/Irrlicht/COpenGLMaterialRenderer.h:545: undefined reference to `glTexGeni'
    ...

    D'après ce que j'ai pu remarquer ça a l'air de venir d'OpenGL ... mais que dois-je installer pour remédier à ce problème?

    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      18 novembre 2007 à 9:49:43

      Salut.

      As tu recompilé Irrlicht ? http://www.siteduzero.com/tuto-3-22640-1-recompiler-irrlicht.html#ss_part_2
      Et si oui, as tu bien lié la lib statique pour compiler ton application ?
      • Partager sur Facebook
      • Partager sur Twitter
        18 novembre 2007 à 9:53:14

        j'ai bien compilé et j'ai mis le fichier libIrrlicht.a dans le dossier /usr/lib/ , mais comment dois-je faire pour lier?
        • Partager sur Facebook
        • Partager sur Twitter
          18 novembre 2007 à 9:55:25

          Arf, ben vu que tu te sert d'un makefile je n'en ai aucune idée.

          Dans code::blocks par exemple c'est une option du projet, tu indique au linker qu'il faut qu'il utilise tel ou tel fichier...
          • Partager sur Facebook
          • Partager sur Twitter
            18 novembre 2007 à 10:31:07

            Merci tout de même.

            Quelqu'un aurait-il des connaissances à ce sujet? Merci d'avance.

            Edit: Bon, à force de bidouiller j'ai remarqué qu'en fait il manquait les librairies nécessaires à la compilation, normalement mon Makefile devait ressembler à ça:
            1. irrlicht: irrlicht.o
            2.         g++ -o irrlicht irrlicht.o -lIrrlicht -lGL -lGLU -lXxf86vm -lXext -lX11


            Merci quand même
            • Partager sur Facebook
            • Partager sur Twitter

            [Irrlicht] Problème de compilation

            × 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