Partage
  • Partager sur Facebook
  • Partager sur Twitter

Installation de Crazy Eddie's GUI System (CEGUI)

La bidouille c'est pas térrible...

    22 juillet 2007 à 19:37:45

    Boujours tout le monde.

    Voilà pour un projet je voulai utiliser la lib CEGUI.
    Mais sa ne marche pas.
    Le code est bon, pas d'erreure dedans, les erreurs sont des erreurs de linkage.
    Je suis persuadé que sa vient du fait que j'utilise Dev-C++, alors que la lib, elle, est faite pour VC++(je crois).
    En effet j'essai de linker des .lib alors que d'habitude on envoi des .a à Dev.
    Dite moi si je me trompe de l'origine de l'erreur je ne suis même pas sûr que Dev n'accepte pas les .lib...

    Mais voilà j'ai beau chercher sur le net et je ne trouve aucune version de la lib pour Dev.
    J'ai bien vu quelques méthodes de bidouillage mais à chaque fois sa ne marchait pas, j'ai essayer de recompiler la lib mais c'était tros long et voué à l'échec(j'ai jamais fait sa et je sais pas vraiment comment faire) ...

    Cependant le forum du SdZ n'a pas échapper à mes recherches et il s'avère que Kayl comptait utiliser CEGUI dans la suite de son tuto.
    Mais bon cette annonce remonte maintenant à juin 2006, je n'éspère plus voir le tuto :p
    Mais il parlait tout de même de ces bidouilles, il préfèrait qu'on utilise VC++, menfin moi j'ai jamais aimer VC++ et j'ai toujours tout fait pour faire sans :p .
    Donc je préfère encore les bidouilles douteuses, du moment que sa marche je vois pas le problème :D .

    Vous l'aurez compris j'aimerai que l'on m'aide pour compiler la lib afin de l'utiliser sous Dev ou mieux qu'on m'indique une version précompiler pour Dev(mais là je m'attend pas trop a ce qu'elle existe :euh: )
    Si quelqu'un à déjà réussit à utiliser CEGUI sous Dev, merci de m'aider ^^
    • Partager sur Facebook
    • Partager sur Twitter
      22 juillet 2007 à 20:30:17

      A mon avis, il te suffit de télécharger les source et de de compiler tout, çà doit expliqué sur le site ou dans un fichier fourni avec les sources. Un makefile est probablement aussi distribué avec et peut-être que un simple 'make' sera suffisant.
      Au pire tu aura peut-être besoin de MSYS pour t'en sortir.
      • Partager sur Facebook
      • Partager sur Twitter
        22 juillet 2007 à 21:03:48

        Ok.
        J'avai déjà essayer de compiler sans succès.
        Mais la je viens de re-regarder et sur le site il y à bien une archive pour installer avec les sources, il y à aussi un dossier makefile avec dedans des batch et un premake.exe.

        J'ai lancer build_vs2005 et la console qui se lance m'indique ceci :


        C:\CEGUI-0.5-0-RC2\makefiles\premake>premake --file cegui.lua --target vs2005
        Generating Visual Studio 2005 solution and project files:
        ...CEGUIBase
        ...tolua++
        ...tolua++cegui
        ...CEGUILua
        ...CEGUIFalagardWRBase
        ...CEGUITGAImageCodec
        ...CEGUISILLYImageCodec
        ...CEGUIExpatParser
        ...CEGUIXercesParser
        ...CEGUITinyXMLParser
        ...OpenGLGUIRenderer

        C:\CEGUI-0.5-0-RC2\makefiles\premake>pause
        Appuyez sur une touche pour continuer...


        Tout ce que j'obtient c'est un projet VC++ dans le dossier makefile.
        Je le lance et j'obtient une solution qui contient tout ce que m'a sortie le batch.
        Alors j'essai de compiler mais j'obtient pleins d'erreurs :



        ------ Début de la génération : Projet : CEGUIBase, Configuration : Debug Win32 ------
        Compilation en cours...
        CEGUIBaseFactories.cpp
        c:\microsoft visual studio 8\vc\include\stddef.h(6) : fatal error C1021: commande de préprocesseur non valide 'include_next'
        CEGUIButtonBase.cpp
        c:\microsoft visual studio 8\vc\include\stddef.h(6) : fatal error C1021: commande de préprocesseur non valide 'include_next'
        CEGUICheckbox.cpp
        c:\microsoft visual studio 8\vc\include\stddef.h(6) : fatal error C1021: commande de préprocesseur non valide 'include_next'
        CEGUICheckboxProperties.cpp
        c:\microsoft visual studio 8\vc\include\stddef.h(6) : fatal error C1021: commande de préprocesseur non valide 'include_next'
        CEGUIClippedContainer.cpp
        c:\microsoft visual studio 8\vc\include\stddef.h(6) : fatal error C1021: commande de préprocesseur non valide 'include_next'
        CEGUICombobox.cpp
        c:\microsoft visual studio 8\vc\include\stddef.h(6) : fatal error C1021: commande de préprocesseur non valide 'include_next'
        CEGUIComboboxProperties.cpp
        c:\microsoft visual studio 8\vc\include\stddef.h(6) : fatal error C1021: commande de préprocesseur non valide 'include_next'

        ...


        CEGUIBase - 141 erreur(s), 0 avertissement(s)
        ========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========


        Je ne met pas la suite vue le nombre d'erreurs...


        En plus si je compile avec VC++ je ne pourrais utiliser la lib pour Dev non ?

        Dans ce cas si je dois compiler avec Dev il faut que j'utilise le makefile te la ommande make ?
        Si oui pourait -tu m'expliquer car je ne connais pas cette méthode :euh:

        Merci :)


        EDIT : Histoire de bien chercher dans la bonne direction je voulais savoir si Dev C++ peut linker les .lib ou si il ne peut linker que les .a
        Parceque si il peut linker les .lib alors CEGUI met à disposition des .lib(mais pas de .a), dans ce cas sa ne servirait à rien de compiler les sources(ce qui m'arrangerais :p )

        EDIT : En fait le build_vs2005 etait pour VC++ donc j'ai modifier le build pour utiliser gcc, sa me crache un makefile mais je sais pas comment je dois l'introduire a mon make créer par Dev ?
        Et puis le make créer devrat utiliser les .lib fait pour VC++ ou il faut aussi compiler les .a ?
        • Partager sur Facebook
        • Partager sur Twitter
          23 juillet 2007 à 11:30:05

          çà m'a pris un bout de temps mais j'ai quand même réussi à compiler cegui à la main avec Code-Blocks et GCC. Je met l'adresse ou j'ai uploader le .dll et .a, j'espère que çà marchera :) A noter que la dll dépend de freetype6.dll et pcre3.dll
          http://amaury.pouly.free.fr/cegui/
          • Partager sur Facebook
          • Partager sur Twitter
            23 juillet 2007 à 14:51:16

            Je suis quasi sur que Dev accepte les .lib (J' ai utilisé SDL_image et SDL_ttf sans probléme avec des .lib, si je me souviens bien.)
            • Partager sur Facebook
            • Partager sur Twitter
              23 juillet 2007 à 15:18:53

              Ho merci beaucoup !
              Je comencai à croire que j'allai choisir une autre lib ^^
              Oui, pour les .lib en fait j'ai vu que Dev les acceptait sur un forum, sa paraît logique puisque quand on choisis la lib dans une liste c'est marquer entre parenthèse .a, .lib :p
              Encore merci pour le dll et le .a, je teste sa tout de suite !
              Par contre c'est quoi le fichier .def ?


              EDIT : Encore merci la plupart des erreurs on disparue.
              Cependant il en reste encore quelques une :
              [Linker error] undefined reference to `boost::system::error_code::message() const' 
              [Linker error] undefined reference to `_imp___ZN5CEGUI16IrrlichtRendererC1EPN3irr14IrrlichtDeviceEb' 
              [Linker error] undefined reference to `_imp___ZN5CEGUI16IrrlichtRendererC1EPN3irr14IrrlichtDeviceEb' 
              [Linker error] undefined reference to `_imp___ZN5CEGUI16IrrlichtRenderer7OnEventERN3irr6SEventE' 
              [Linker error] undefined reference to `_imp___ZN5CEGUI11ExpatParserC1Ev' 
              [Linker error] undefined reference to `CEGUI::ExpatParser::parseXMLFile(CEGUI::XMLHandler&, CEGUI::String const&, CEGUI::String const&, CEGUI::String const&)' 
              [Linker error] undefined reference to `CEGUI::ExpatParser::~ExpatParser()' 
              [Linker error] undefined reference to `CEGUI::ExpatParser::~ExpatParser()' 
              [Linker error] undefined reference to `_imp___ZN5CEGUI11ExpatParserC1Ev' 
              [Linker error] undefined reference to `CEGUI::ExpatParser::parseXMLFile(CEGUI::XMLHandler&, CEGUI::String const&, CEGUI::String const&, CEGUI::String const&)' 
              [Linker error] undefined reference to `CEGUI::ExpatParser::~ExpatParser()' 
              [Linker error] undefined reference to `CEGUI::ExpatParser::~ExpatParser()' 


              La plupart d'entre elle traite sur IrrlichtRenderer de cegui que j'utilise et sur le parser de cegui.
              Peut être qu'il faut les inclure dans le fichier .a
              Désoler de pas avoir prévenu sa aurait du me venir a l'esprit qu'il fallait aussi les inclure...

              Y'aurais pas moyen que je compile juste Irrlichtrender et le parser et les ajouter au .a ?

              Par contre pour l'erreur de boost je vois pas trop, même en linkant tout les .lib de boost cette erreur persiste...
              • Partager sur Facebook
              • Partager sur Twitter
                25 juillet 2007 à 9:16:34

                Désolé de pas avoir répondu, oui en effet il faudrait que je recompiler la bibliothèque, je crois pas qu'on puisse faire autrement. Je vais voir çà.

                EDIT:
                Voilà, j'ai recompilé avec le support de Irrlicht et Expat, normalement çà devrait marcher.
                Les fichiers sont à la même adresse que avant.
                • Partager sur Facebook
                • Partager sur Twitter
                  25 juillet 2007 à 11:56:34

                  Arf merci beaucoup c'est de mieux en mieux ^^
                  Irrlicht renderer semble marcher !

                  Par contre le parser marche toujours pas :(

                    [Linker error] undefined reference to `boost::system::error_code::message() const' 
                    [Linker error] undefined reference to `_imp___ZN5CEGUI11ExpatParserC1Ev' 
                    [Linker error] undefined reference to `CEGUI::ExpatParser::parseXMLFile(CEGUI::XMLHandler&, CEGUI::String const&, CEGUI::String const&, CEGUI::String const&)' 
                    [Linker error] undefined reference to `CEGUI::ExpatParser::~ExpatParser()' 
                    [Linker error] undefined reference to `CEGUI::ExpatParser::~ExpatParser()' 
                    [Linker error] undefined reference to `_imp___ZN5CEGUI11ExpatParserC1Ev' 
                    [Linker error] undefined reference to `CEGUI::ExpatParser::parseXMLFile(CEGUI::XMLHandler&, CEGUI::String const&, CEGUI::String const&, CEGUI::String const&)' 
                    [Linker error] undefined reference to `CEGUI::ExpatParser::~ExpatParser()' 
                    [Linker error] undefined reference to `CEGUI::ExpatParser::~ExpatParser()' 
                    ld returned 1 exit status 


                  Est ce que cela peut venir de l'erreur de boost ?
                  • Partager sur Facebook
                  • Partager sur Twitter
                    25 juillet 2007 à 12:13:34

                    J'ai recompilé la partie qui buggait.
                    Normalement, tout les exports du ExpatParser doivent être corrects.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      25 juillet 2007 à 12:19:27

                      Ok je vais essayer.
                      C'est possible que sa vienne de mon code ?
                      Mais bon, je viens de revérifier toute les lib incluse et tout les headers inclu aucuns ne manque.

                      Je teste et je dis si sa marche.

                      EDIT : Ca marche !!
                      Enfin en tout cas pour cegui ^^
                      Il y a encore l'erreur de boost mais pour sa je vais me demerder ;)

                      Merci beaucoup !


                      EDIT : je viens de résoudre le pb de boost en compilant a l'arrache error_code.cpp dans une lib static.
                      Mais quand je lance le programme j'ai cette erreur :

                      Citation : Microsoft Visual C++ Runtime Library

                      Runtime Error !

                      Program: C:\Dec-Cpp\projet\C++\projet\projet.exe


                      This application has requested the Runtime to terminate it in an unusual way.
                      Pleas contact the application's support team for more information.


                      Je comprend pas ce que viens faire MSVC là dedans !
                      Décidement celui là il va me bloquer jusqu'au bout >_<
                      • Partager sur Facebook
                      • Partager sur Twitter
                        28 juillet 2007 à 0:51:08

                        Re, l'erreur était du à l'utilisation de la dll de la version 1.3.1 de Irrlicht, j'ai plus l'erreur en compilant avec la version 1.3 de Irrlicht.
                        Sauf que maintenant j'ai une erreur de segmentation quand je créer le contexte CEGUI avec :

                        irrRenderer = new CEGUI::IrrlichtRenderer(irrdevice);


                        Du coup je me demande si sa viendrais pas d'une erreur de version de Irrlicht.


                        Quelqu'un a déjà eu ce problème ?
                        • Partager sur Facebook
                        • Partager sur Twitter
                          1 août 2007 à 13:41:45

                          Si c'est un probleme de version alors il va falloir que tu recompile toi-meme CEGUI ce qui est assez penible si tu n'utilise pas VC++ mais faisable. A toi de voir. Je n'ai plus en tete la version de Irrlicht avec laquelle j'ai compile CEGUI mais logiquement cela devrait etre la derniere en date cad la 1.3.1 !

                          Concernant ton erreur de segmentation, l'erreur MSVC est simplement du au fait que sous windows, la libc a ete compile avec MSVC d'ou le titre et cela veut dire que soit ton programme a lance une exception non attrapee soit qu'il a appele 'abort'.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            1 août 2007 à 16:25:56

                            Pourquoi utiliser cegui ?

                            Le moteur GUI de irrlicht est tres performant une fois bien acquis !

                            CEGUI a des probleme de portabilite sous nunux.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              2 août 2007 à 11:52:23

                              Ok, je vais voir mais recompiler sous gcc sa me fait pas trop envie ^^

                              J'avais regarder la GUI de Irrlicht mais le problème c'est que je trouve qu'on ne peut pas adapté le skin facilement.
                              Je veut dire par la qu'on peut modifier les couleurs c'est bien beau mais on se limite au style trop axé a celui de windows.
                              Par contre c'est vrai que la portabilité m'attire déjà plus :p

                              Je vais voir, tu connais une façon de modifier le skin de la GUI de Irrlicht ?
                              Un peu a la manière de CEGUI avec les imagesets.

                              Pour le problème de version j'ai reessayer avec la 1.3.1 sa marche toujours pas, sur internet j'ai pas trouver de personne ayant eu ce problème.
                              Je crois que je dois donc bien recompiler CEGUI, mais la... je préfère Irrlicht :p

                              EDIT : Le sujet commence a dériver je vais en créer un autre ;)
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Installation de Crazy Eddie's GUI System (CEGUI)

                              × 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