[bug] CMake not correct against Ogre 1.8 OSX

simed

21-05-2012 12:40:52

At least I don't think so, I had to add:

/usr/lib/libz.dylib

To "Other Linker Flags" in Xcode to avoid linker errors building MyGUIEngine. This is a new requirement in Ogre 1.8 IIRC.

simed

21-05-2012 13:11:41

In addition, I can build MyGUIEngine, Ogre.platform and Common projects. But when I try to build a sample project like Demo_Colour, I get lots of linker errors:



Build Demo_Colour of project MYGUI with configuration Release

Ld /usr/local/my-gui/build/mac/bin/Release/Demo_Colour.app/Contents/MacOS/Demo_Colour normal x86_64
cd /usr/local/my-gui/src
setenv MACOSX_DEPLOYMENT_TARGET 10.6
/Developer/usr/bin/g++-4.2 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.6.sdk -L/usr/local/my-gui/build/mac/bin/Release -L/usr/local/ogre/ogre1.8/build/macNoThread/sdk/lib/Release -L/usr/local/ogre/ogre1.8/build/macNoThread/sdk/lib -F/usr/local/my-gui/build/mac/bin/Release -F/Applications -F/usr/local/ogre/ogre1.8/build/macNoThread/sdk/lib/Release -filelist /usr/local/my-gui/build/mac/Demos/Demo_Colour/MYGUI.build/Release/Demo_Colour.build/Objects-normal/x86_64/Demo_Colour.LinkFileList -mmacosx-version-min=10.6 -Wl,-search_paths_first -Wl,-headerpad_max_install_names /usr/local/my-gui/build/mac/lib/Release/libCommon.a /usr/local/my-gui/build/mac/lib/Release/libMyGUI.OgrePlatform.a /usr/local/my-gui/build/mac/lib/Release/MyGUIEngine.framework/Versions/3.2.0/MyGUIEngine -framework CoreFoundation -framework IOKit -framework Ogre /usr/local/ogre/ogre1.8/Dependencies/lib/release/libOIS.a /usr/local/ogre/ogre1.8/Dependencies/lib/Release/libfreetype.a -framework Carbon -framework CoreVideo -framework Cocoa -o /usr/local/my-gui/build/mac/bin/Release/Demo_Colour.app/Contents/MacOS/Demo_Colour

Undefined symbols:
"MyGUI::Singleton<MyGUI::InputManager>::mClassTypeName", referenced from:
MyGUI::Singleton<MyGUI::InputManager>::getInstance() in libCommon.a(BaseManager.o)
MyGUI::Singleton<MyGUI::InputManager>::getInstance() in libCommon.a(BaseManager.o)
"MyGUI::Singleton<MyGUI::DataManager>::msInstance", referenced from:
MyGUI::OgreRenderManager::createTexture(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in libMyGUI.OgrePlatform.a(MyGUI_OgreRenderManager.o)
MyGUI::Singleton<MyGUI::DataManager>::~Singleton()in libMyGUI.OgrePlatform.a(MyGUI_OgreDataManager.o)
MyGUI::Singleton<MyGUI::DataManager>::~Singleton()in libMyGUI.OgrePlatform.a(MyGUI_OgreDataManager.o)
MyGUI::Singleton<MyGUI::DataManager>::Singleton()in libMyGUI.OgrePlatform.a(MyGUI_OgreDataManager.o)
MyGUI::Singleton<MyGUI::DataManager>::getInstance() in libMyGUI.OgrePlatform.a(MyGUI_OgreTexture.o)
"MyGUI::Singleton<MyGUI::Gui>::mClassTypeName", referenced from:
MyGUI::Singleton<MyGUI::Gui>::getInstance() in ColourPanel.o
MyGUI::Singleton<MyGUI::Gui>::getInstance() in ColourPanel.o
MyGUI::Singleton<MyGUI::Gui>::getInstance() in EditPanel.o
MyGUI::Singleton<MyGUI::Gui>::getInstance() in EditPanel.o
MyGUI::Singleton<MyGUI::Gui>::getInstance() in libCommon.a(BaseManager.o)
MyGUI::Singleton<MyGUI::Gui>::getInstance() in libCommon.a(BaseManager.o)
"MyGUI::Singleton<MyGUI::LayoutManager>::msInstance", referenced from:
MyGUI::Singleton<MyGUI::LayoutManager>::getInstance() in ColourPanel.o
MyGUI::Singleton<MyGUI::LayoutManager>::getInstance() in DemoKeeper.o
MyGUI::Singleton<MyGUI::LayoutManager>::getInstance() in EditPanel.o
"MyGUI::Singleton<MyGUI::LayoutManager>::mClassTypeName", referenced from:
MyGUI::Singleton<MyGUI::LayoutManager>::getInstance() in ColourPanel.o
MyGUI::Singleton<MyGUI::LayoutManager>::getInstance() in ColourPanel.o
MyGUI::Singleton<MyGUI::LayoutManager>::getInstance() in DemoKeeper.o
MyGUI::Singleton<MyGUI::LayoutManager>::getInstance() in DemoKeeper.o
MyGUI::Singleton<MyGUI::LayoutManager>::getInstance() in EditPanel.o
MyGUI::Singleton<MyGUI::LayoutManager>::getInstance() in EditPanel.o
"MyGUI::Singleton<MyGUI::PointerManager>::msInstance", referenced from:
MyGUI::Singleton<MyGUI::PointerManager>::getInstance() in libCommon.a(PointerManager.o)
"MyGUI::Singleton<MyGUI::SkinManager>::mClassTypeName", referenced from:
MyGUI::Singleton<MyGUI::SkinManager>::getInstance() in ColourPanel.o
MyGUI::Singleton<MyGUI::SkinManager>::getInstance() in ColourPanel.o
MyGUI::Singleton<MyGUI::SkinManager>::getInstance() in EditPanel.o
MyGUI::Singleton<MyGUI::SkinManager>::getInstance() in EditPanel.o
MyGUI::Singleton<MyGUI::SkinManager>::getInstance() in libCommon.a(BaseManager.o)
MyGUI::Singleton<MyGUI::SkinManager>::getInstance() in libCommon.a(BaseManager.o)
"MyGUI::Singleton<MyGUI::Gui>::msInstance", referenced from:
MyGUI::Singleton<MyGUI::Gui>::getInstance() in ColourPanel.o
MyGUI::Singleton<MyGUI::Gui>::getInstance() in EditPanel.o
MyGUI::Singleton<MyGUI::Gui>::getInstance() in libCommon.a(BaseManager.o)
MyGUI::OgreRenderManager::renderQueueStarted(unsigned char, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool&)in libMyGUI.OgrePlatform.a(MyGUI_OgreRenderManager.o)
"MyGUI::Singleton<MyGUI::ResourceManager>::msInstance", referenced from:
MyGUI::Singleton<MyGUI::ResourceManager>::getInstance() in DemoKeeper.o
"MyGUI::Singleton<MyGUI::SkinManager>::msInstance", referenced from:
MyGUI::Singleton<MyGUI::SkinManager>::getInstance() in ColourPanel.o
MyGUI::Singleton<MyGUI::SkinManager>::getInstance() in EditPanel.o
MyGUI::Singleton<MyGUI::SkinManager>::getInstance() in libCommon.a(BaseManager.o)
"MyGUI::Singleton<MyGUI::LayerManager>::msInstance", referenced from:
MyGUI::Singleton<MyGUI::LayerManager>::getInstance() in libCommon.a(BaseManager.o)
"MyGUI::Singleton<MyGUI::DataManager>::mClassTypeName", referenced from:
MyGUI::OgreDataManager::shutdown() in libMyGUI.OgrePlatform.a(MyGUI_OgreDataManager.o)
MyGUI::OgreDataManager::shutdown() in libMyGUI.OgrePlatform.a(MyGUI_OgreDataManager.o)
MyGUI::OgreDataManager::shutdown() in libMyGUI.OgrePlatform.a(MyGUI_OgreDataManager.o)
MyGUI::OgreDataManager::shutdown() in libMyGUI.OgrePlatform.a(MyGUI_OgreDataManager.o)
MyGUI::OgreDataManager::initialise(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in libMyGUI.OgrePlatform.a(MyGUI_OgreDataManager.o)
MyGUI::OgreDataManager::initialise(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in libMyGUI.OgrePlatform.a(MyGUI_OgreDataManager.o)
MyGUI::OgreDataManager::initialise(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in libMyGUI.OgrePlatform.a(MyGUI_OgreDataManager.o)
MyGUI::OgreDataManager::initialise(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in libMyGUI.OgrePlatform.a(MyGUI_OgreDataManager.o)
MyGUI::Singleton<MyGUI::DataManager>::~Singleton()in libMyGUI.OgrePlatform.a(MyGUI_OgreDataManager.o)
MyGUI::Singleton<MyGUI::DataManager>::~Singleton()in libMyGUI.OgrePlatform.a(MyGUI_OgreDataManager.o)
MyGUI::Singleton<MyGUI::DataManager>::~Singleton()in libMyGUI.OgrePlatform.a(MyGUI_OgreDataManager.o)
MyGUI::Singleton<MyGUI::DataManager>::~Singleton()in libMyGUI.OgrePlatform.a(MyGUI_OgreDataManager.o)
MyGUI::Singleton<MyGUI::DataManager>::Singleton()in libMyGUI.OgrePlatform.a(MyGUI_OgreDataManager.o)
MyGUI::Singleton<MyGUI::DataManager>::Singleton()in libMyGUI.OgrePlatform.a(MyGUI_OgreDataManager.o)
MyGUI::Singleton<MyGUI::DataManager>::getInstance() in libMyGUI.OgrePlatform.a(MyGUI_OgreTexture.o)
MyGUI::Singleton<MyGUI::DataManager>::getInstance() in libMyGUI.OgrePlatform.a(MyGUI_OgreTexture.o)
"MyGUI::Singleton<MyGUI::LayerManager>::mClassTypeName", referenced from:
MyGUI::Singleton<MyGUI::LayerManager>::getInstance() in libCommon.a(BaseManager.o)
MyGUI::Singleton<MyGUI::LayerManager>::getInstance() in libCommon.a(BaseManager.o)
"MyGUI::Singleton<MyGUI::PointerManager>::mClassTypeName", referenced from:
MyGUI::Singleton<MyGUI::PointerManager>::getInstance() in libCommon.a(PointerManager.o)
MyGUI::Singleton<MyGUI::PointerManager>::getInstance() in libCommon.a(PointerManager.o)
"MyGUI::Singleton<MyGUI::RenderManager>::mClassTypeName", referenced from:
MyGUI::Singleton<MyGUI::RenderManager>::getInstance() in ColourPanel.o
MyGUI::Singleton<MyGUI::RenderManager>::getInstance() in ColourPanel.o
MyGUI::Singleton<MyGUI::RenderManager>::getInstance() in libCommon.a(BaseManager.o)
MyGUI::Singleton<MyGUI::RenderManager>::getInstance() in libCommon.a(BaseManager.o)
MyGUI::OgreRenderManager::shutdown() in libMyGUI.OgrePlatform.a(MyGUI_OgreRenderManager.o)
MyGUI::OgreRenderManager::shutdown() in libMyGUI.OgrePlatform.a(MyGUI_OgreRenderManager.o)
MyGUI::OgreRenderManager::shutdown() in libMyGUI.OgrePlatform.a(MyGUI_OgreRenderManager.o)
MyGUI::OgreRenderManager::shutdown() in libMyGUI.OgrePlatform.a(MyGUI_OgreRenderManager.o)
MyGUI::OgreRenderManager::initialise(Ogre::RenderWindow*, Ogre::SceneManager*) in libMyGUI.OgrePlatform.a(MyGUI_OgreRenderManager.o)
MyGUI::OgreRenderManager::initialise(Ogre::RenderWindow*, Ogre::SceneManager*) in libMyGUI.OgrePlatform.a(MyGUI_OgreRenderManager.o)
MyGUI::OgreRenderManager::initialise(Ogre::RenderWindow*, Ogre::SceneManager*) in libMyGUI.OgrePlatform.a(MyGUI_OgreRenderManager.o)
MyGUI::OgreRenderManager::initialise(Ogre::RenderWindow*, Ogre::SceneManager*) in libMyGUI.OgrePlatform.a(MyGUI_OgreRenderManager.o)
MyGUI::Singleton<MyGUI::RenderManager>::~Singleton()in libMyGUI.OgrePlatform.a(MyGUI_OgreRenderManager.o)
MyGUI::Singleton<MyGUI::RenderManager>::~Singleton()in libMyGUI.OgrePlatform.a(MyGUI_OgreRenderManager.o)
MyGUI::Singleton<MyGUI::RenderManager>::~Singleton()in libMyGUI.OgrePlatform.a(MyGUI_OgreRenderManager.o)
MyGUI::Singleton<MyGUI::RenderManager>::~Singleton()in libMyGUI.OgrePlatform.a(MyGUI_OgreRenderManager.o)
MyGUI::Singleton<MyGUI::RenderManager>::Singleton()in libMyGUI.OgrePlatform.a(MyGUI_OgreRenderManager.o)
MyGUI::Singleton<MyGUI::RenderManager>::Singleton()in libMyGUI.OgrePlatform.a(MyGUI_OgreRenderManager.o)
"MyGUI::Singleton<MyGUI::InputManager>::msInstance", referenced from:
MyGUI::Singleton<MyGUI::InputManager>::getInstance() in libCommon.a(BaseManager.o)
"MyGUI::Singleton<MyGUI::ResourceManager>::mClassTypeName", referenced from:
MyGUI::Singleton<MyGUI::ResourceManager>::getInstance() in DemoKeeper.o
MyGUI::Singleton<MyGUI::ResourceManager>::getInstance() in DemoKeeper.o
"MyGUI::Singleton<MyGUI::RenderManager>::msInstance", referenced from:
MyGUI::Singleton<MyGUI::RenderManager>::getInstance() in ColourPanel.o
MyGUI::Singleton<MyGUI::RenderManager>::getInstance() in libCommon.a(BaseManager.o)
MyGUI::OgreRenderManager::getInstancePtr() in libMyGUI.OgrePlatform.a(MyGUI_OgreRenderManager.o)
MyGUI::OgreRenderManager::getInstance() in libMyGUI.OgrePlatform.a(MyGUI_OgreRenderManager.o)
MyGUI::Singleton<MyGUI::RenderManager>::~Singleton()in libMyGUI.OgrePlatform.a(MyGUI_OgreRenderManager.o)
MyGUI::Singleton<MyGUI::RenderManager>::~Singleton()in libMyGUI.OgrePlatform.a(MyGUI_OgreRenderManager.o)
MyGUI::Singleton<MyGUI::RenderManager>::Singleton()in libMyGUI.OgrePlatform.a(MyGUI_OgreRenderManager.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
It's like MyGUI doesn't know itself exists?