Hi
I'm trying to upgrade my ogre application to CEGUI-0.7.1 so i download CEGUI-0.7.1 and build it like this:
http://www.ogre3d.org/wiki/index.php/Building_CEGUI
and i get all .lib and .dll files I need without any problems.
When i copy .dll and .lib files to my ogre application and run it I get this error:
I open application project and rebuild it but get some linker errors:
Ogre.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall CEGUI::System::~System(void)" (__imp_??1System@CEGUI@@UAE@XZ)
Ogre.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall CEGUI::System::~System(void)" (__imp_??1System@CEGUI@@UAE@XZ)
Ogre.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall CEGUI::System::System(class CEGUI::Renderer *,class CEGUI::ResourceProvider *,class CEGUI::XMLParser *,class CEGUI::ScriptModule *,class CEGUI::String const &,class CEGUI::String const &)" (__imp_??0System@CEGUI@@QAE@PAVRenderer@1@PAVResourceProvider@1@PAVXMLParser@1@PAVScriptModule@1@ABVString@1@4@Z)
Ogre.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class CEGUI::Scheme * __thiscall CEGUI::SchemeManager::loadScheme(class CEGUI::String const &,class CEGUI::String const &)" (__imp_?loadScheme@SchemeManager@CEGUI@@QAEPAVScheme@2@ABVString@2@0@Z)
.\Release\ChessOnline\ChessOnline.exe : fatal error LNK1120: 3 unresolved externals
My next idea was replace CEGUI include files from my application with new one from CEGUI-0.7.1 and I get new (this time compilation) error:
e:\Programowanie\Visual Studio\ChessOnline\ogre\OgreCEGUIRenderer.h(459) : error C2555: 'CEGUI::OgreCEGUIRenderer::createTexture': overriding virtual function return type differs and is not covariant from 'CEGUI::Renderer::createTexture'
e:\Programowanie\Visual Studio\ChessOnline\ogre\CEGUI/CEGUIRenderer.h(169) : see declaration of 'CEGUI::Renderer::createTexture'
e:\Programowanie\Visual Studio\ChessOnline\ogre\OgreCEGUIRenderer.h(459) : error C2555: 'CEGUI::OgreCEGUIRenderer::createTexture': overriding virtual function return type differs and is not covariant from 'CEGUI::Renderer::createTexture'
e:\Programowanie\Visual Studio\ChessOnline\ogre\CEGUI/CEGUIRenderer.h(145) : see declaration of 'CEGUI::Renderer::createTexture'
I have no idea what I'm doing wrong.
OGRE v1.6.4 and CEGUI-0.7.1
Moderators: CEGUI MVP, CEGUI Team
- Jabberwocky
- Quite a regular
- Posts: 86
- Joined: Wed Oct 31, 2007 18:16
- Location: Canada
- Contact:
Re: OGRE v1.6.4 and CEGUI-0.7.1
The change from CEGUI 0.6 to 0.7 is an "interface breaking change".
What does this mean to you?
It means that you can't just replace the library, and expect everything to work. Any code which used CEGUI 0.6 needs to be changed to use CEGUI 0.7 because the functions are different.
Here are the porting notes for upgrading from CEGUI 0.6 to 0.7: http://cegui.org.uk/docs/current/porting6to7.html
Generally, what you should do is this: try compiling your project. If you get a compile error for some FunctionWhatever(), search through those porting notes for FunctionWhatever, and see what needs to be changed.
Important: OgreCEGUIRenderer is obsolete
There is one very important thing that isn't covered very well in those porting notes. OgreCEGUIRenderer, the ogre code which is used to render CEGUI, is now obsolete. This code will not work with CEGUI 0.7. This code has been replaced by CEGUIOgreRenderer, which is CEGUI code rather than Ogre code.
You will need to totally remove OgreCEGUIRenderer from your Ogre project (stop compiling it, stop including it, stop linking to it). You will have to instead link your project to CEGUIOgreRenderer.lib, and (if dynamically linking) copy over CEGUIOgreRenderer.dll / CEGUIOgreRenderer_d.dll to wherever you keep all your dlls.
It's very easy to end up with a mismatch of old CEGUI 0.6 include files, libs, or dlls with new CEGUI 0.7 include files, libs, or dlls. Any errors you get are either because of this, or because you haven't followed the porting notes listed above.
What does this mean to you?
It means that you can't just replace the library, and expect everything to work. Any code which used CEGUI 0.6 needs to be changed to use CEGUI 0.7 because the functions are different.
Here are the porting notes for upgrading from CEGUI 0.6 to 0.7: http://cegui.org.uk/docs/current/porting6to7.html
Generally, what you should do is this: try compiling your project. If you get a compile error for some FunctionWhatever(), search through those porting notes for FunctionWhatever, and see what needs to be changed.
Important: OgreCEGUIRenderer is obsolete
There is one very important thing that isn't covered very well in those porting notes. OgreCEGUIRenderer, the ogre code which is used to render CEGUI, is now obsolete. This code will not work with CEGUI 0.7. This code has been replaced by CEGUIOgreRenderer, which is CEGUI code rather than Ogre code.
You will need to totally remove OgreCEGUIRenderer from your Ogre project (stop compiling it, stop including it, stop linking to it). You will have to instead link your project to CEGUIOgreRenderer.lib, and (if dynamically linking) copy over CEGUIOgreRenderer.dll / CEGUIOgreRenderer_d.dll to wherever you keep all your dlls.
It's very easy to end up with a mismatch of old CEGUI 0.6 include files, libs, or dlls with new CEGUI 0.7 include files, libs, or dlls. Any errors you get are either because of this, or because you haven't followed the porting notes listed above.
The Salvation Prophecy
Space Combat. Planet Exploration. Strategic Domination.
Space Combat. Planet Exploration. Strategic Domination.
Who is online
Users browsing this forum: No registered users and 10 guests