Autor Wątek: Ogre i CEGUI problem z integracją  (Przeczytany 1372 razy)

Offline Bielos

  • Użytkownik

# Wrzesień 01, 2011, 18:13:36
Chciałem do mojego projektu w Ogre wykorzystać CEGUI jak to jest proponowane w tutorialu na oficjalnym wiki. Pierwszy problem pojawił się gdy ściągnąłem SDK dla MinGW. Po dopisaniu do kodu kilku linijek i kompilacji w konsoli Ogra wyświetlił mi się komunikat:
Cytuj
CEGUIOgreRenderer.cpp(430): The Ogre::Root object has not been created.

Problem polega na tym, że wcześniej inicjalizuje obiekt Root:
    #ifdef _DEBUG
        mPluginsCfg = "plugins_d.cfg";
        mResourcesCfg = "resources_d.cfg";
    #else
        mPluginsCfg = "plugins.cfg";
        mResourcesCfg = "resources.cfg";
    #endif

    mRoot = new Ogre::Root(mPluginsCfg);

Stwierdziłem więc że sam ściągnę sobie kod CEGUI go go skompiluje. W tutorialu na ogre wiki jest napisane,że powinienem kompilować OgreRenderer, który nie istnieje. Po kompilacji CEGUIBase otrzymuje takie błędy:
Cytuj
c:\cegui-0.7.5\cegui\include\ceguipcreregexmatcher.h(33): fatal error C1083: Cannot open include file: 'pcre.h': No such file or directory

c:\cegui-0.7.5\cegui\src\minizip\iowin32.cpp(16): fatal error C1083: Cannot open include file: 'zlib.h': No such file or directory

Trochę już nad tym siedzę i nadal nie działa, a w końcu obiekt jest zainicjalizowany :)
Oczywiście gdy pominę kod w którym używam CEGUI to Ogre działa normalnie.
« Ostatnia zmiana: Wrzesień 01, 2011, 18:21:02 wysłana przez Bielos »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline BEZIMENNY45645

  • Użytkownik

# Wrzesień 01, 2011, 20:23:01
Znajdź te pliki na necie i skompiluj.

Offline Xirdus

  • Redaktor

# Wrzesień 01, 2011, 20:26:01
Znajdź i skompiluj pcre i zlib.

Offline Bielos

  • Użytkownik

# Wrzesień 04, 2011, 23:28:54
Po długiej kompilacji tych bibliotek udało mi się skompilować CEGUI.base. Powstał plik lib o takiej nazwie. Problem w tym że na tej liście w tym projekcie do Visuala nie ma nic o OgreRenderer chociaż są takie pliki gdzieś w tym katalogu (RendererModules/Ogre i tam jest OgreRenderer.cpp i .h). Tak więc po kompilacji mam wszystkie liby poza OgreRenderer.lib. No i pojawia mi się taki błąd podczas kompilacji CEGUIBase (chociaż lib się robi):

Cytuj
     Creating library ../../../lib/CEGUIBase_d.lib and object ../../../lib/CEGUIBase_d.exp
CEGUIFreeTypeFont.obj : error LNK2019: unresolved external symbol "protected: void __thiscall CEGUI::FreeTypeFont::addFreeTypeFontProperties(void)" (?addFreeTypeFontProperties@FreeTypeFont@CEGUI@@IAEXXZ) referenced in function "public: __thiscall CEGUI::FreeTypeFont::FreeTypeFont(class CEGUI::String const &,float,bool,class CEGUI::String const &,class CEGUI::String const &,bool,float,float,float)" (??0FreeTypeFont@CEGUI@@QAE@ABVString@1@M_N001MMM@Z)
../../../bin\CEGUIBase_d.dll : fatal error LNK1120: 1 unresolved externals

A i jeszcze przy okazji musiałem kompilować bibliotekę freetype.
« Ostatnia zmiana: Wrzesień 04, 2011, 23:30:46 wysłana przez Bielos »

Offline Bielos

  • Użytkownik

# Wrzesień 05, 2011, 22:36:51
Oki poradziłem sobie, przeszukałem plik config.lua i znalazłem linijkę:
OGRE_RENDERER = falsei zamieniłem na true.