[solved] linker errors using OgreMain_d.dll

Omni

01-07-2006 19:45:20

i tried to build PLSM2. in releasemode and everything went fine. but in debug mode, i get the following linker messages:


:: === Plugin_PagingLandScapeSceneManager2, Debug ===
:OgrePagingLandScapeOctreeSphereSceneQuery.cpp:: undefined reference to `non-virtual thunk to Ogre::RegionSceneQuery::queryResult(Ogre::MovableObject*)'
:OgrePagingLandScapeOctreeSphereSceneQuery.cpp:: undefined reference to `non-virtual thunk to Ogre::RegionSceneQuery::queryResult(Ogre::SceneQuery::WorldFragment*)'
OgreOcclusionBoundingBox.cpp:: undefined reference to `Ogre::SimpleRenderable::setMaterial(stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&)'
OgreOcclusionBoundingBox.cpp:: undefined reference to `Ogre::SimpleRenderable::setMaterial(stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&)'
:OgreOcclusionBoundingBox.cpp:: undefined reference to `Ogre::ShadowCaster::generateShadowVolume(Ogre::EdgeData*, Ogre::HardwareIndexBufferSharedPtr, Ogre::Light const*, stlp_std::vector<Ogre::ShadowRenderable*, stlp_std::allocator<Ogre::ShadowRenderable*> >&, unsigned long)'
:OgreOcclusionBoundingBox.cpp:: undefined reference to `non-virtual thunk to Ogre::SimpleRenderable::getMaterial() const'
:OgreOcclusionBoundingBox.cpp:: undefined reference to `non-virtual thunk to Ogre::SimpleRenderable::getRenderOperation(Ogre::RenderOperation&)'
:OgreOcclusionBoundingBox.cpp:: undefined reference to `non-virtual thunk to Ogre::SimpleRenderable::getLights() const'
:OgreOcclusionBoundingBox.cpp:: undefined reference to `Ogre::Exception::Exception(int, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, char*, long)'
:OgreOcclusionBoundingBox.cpp:: undefined reference to `Ogre::Exception::Exception(int, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, char*, long)'
:OgrePagingLandScapeCamera.cpp:: undefined reference to `Ogre::ShadowCaster::generateShadowVolume(Ogre::EdgeData*, Ogre::HardwareIndexBufferSharedPtr, Ogre::Light const*, stlp_std::vector<Ogre::ShadowRenderable*, stlp_std::allocator<Ogre::ShadowRenderable*> >&, unsigned long)'
:OgrePagingLandScapeCamera.cpp:: undefined reference to `non-virtual thunk to Ogre::Frustum::getMaterial() const'
:OgrePagingLandScapeCamera.cpp:: undefined reference to `non-virtual thunk to Ogre::Frustum::getRenderOperation(Ogre::RenderOperation&)'
:OgrePagingLandScapeCamera.cpp:: undefined reference to `non-virtual thunk to Ogre::Frustum::getWorldTransforms(Ogre::Matrix4*) const'
:OgrePagingLandScapeCamera.cpp:: undefined reference to `non-virtual thunk to Ogre::Frustum::getWorldOrientation() const'
:OgrePagingLandScapeCamera.cpp:: undefined reference to `non-virtual thunk to Ogre::Frustum::getWorldPosition() const'
:OgrePagingLandScapeCamera.cpp:: undefined reference to `non-virtual thunk to Ogre::Frustum::getSquaredViewDepth(Ogre::Camera const*) const'
:OgrePagingLandScapeCamera.cpp:: undefined reference to `non-virtual thunk to Ogre::Frustum::getLights() const'
OgrePagingLandScapeData2DManager.cpp:: undefined reference to `Ogre::StringUtil::endsWith(stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, bool)'
OgrePagingLandScapeData2DManager.cpp:: undefined reference to `Ogre::Exception::Exception(int, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, char*, long)'
OgrePagingLandScapeData2D_HeightField.cpp:: undefined reference to `Ogre::Exception::Exception(int, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, char*, long)'
OgrePagingLandScapeData2D_HeightField.cpp:: undefined reference to `Ogre::Exception::Exception(int, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, char*, long)'
OgrePagingLandScapeData2D_HeightField.cpp:: undefined reference to `Ogre::ResourceGroupManager::findResourceFileInfo(stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&)'
OgrePagingLandScapeData2D_HeightField.cpp:: undefined reference to `Ogre::Image::save(stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&)'
OgrePagingLandScapeData2D_HeightField.cpp:: undefined reference to `Ogre::ResourceGroupManager::resourceExists(stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&)'
OgrePagingLandScapeData2D_HeightField.cpp:: undefined reference to `Ogre::ResourceGroupManager::resourceExists(stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&)'
OgrePagingLandScapeData2D_HeightField.cpp:: undefined reference to `Ogre::LogManager::logMessage(stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, Ogre::LogMessageLevel, bool)'
OgrePagingLandScapeData2D_HeightField.cpp:: undefined reference to `Ogre::Image::load(stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&)'
OgrePagingLandScapeData2D_HeightField.cpp:: undefined reference to `Ogre::Image::load(stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&)'
OgrePagingLandScapeData2D_HeightField.cpp:: undefined reference to `Ogre::Exception::Exception(int, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, char*, long)'
OgrePagingLandScapeData2D_HeightField.cpp:: undefined reference to `Ogre::Exception::Exception(int, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, char*, long)'
OgrePagingLandScapeData2D_HeightField.cpp:: undefined reference to `Ogre::Image::load(stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&)'
OgrePagingLandScapeData2D_HeightField.cpp:: undefined reference to `Ogre::Image::load(stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&)'
OgrePagingLandScapeData2D_HeightField.cpp:: undefined reference to `Ogre::Image::load(stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&)'
OgrePagingLandScapeData2D_HeightField.cpp:: undefined reference to `Ogre::Exception::Exception(int, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, char*, long)'
OgrePagingLandScapeData2D_HeightField.cpp:: undefined reference to `Ogre::Image::load(stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&)'
OgrePagingLandScapeData2D_HeightField.cpp:: undefined reference to `Ogre::Exception::Exception(int, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, char*, long)'
OgrePagingLandScapeData2D_HeightFieldBlendNeighbor.cpp:: undefined reference to `Ogre::ResourceGroupManager::resourceExists(stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&)'
OgrePagingLandScapeData2D_HeightFieldBlendNeighbor.cpp:: undefined reference to `Ogre::Image::load(stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&)'
OgrePagingLandScapeData2D_HeightFieldBlendNeighbor.cpp:: undefined reference to `Ogre::LogManager::logMessage(stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, Ogre::LogMessageLevel, bool)'
OgrePagingLandScapeData2D_HeightFieldBlendNeighbor.cpp:: undefined reference to `Ogre::ResourceGroupManager::resourceExists(stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&)'
OgrePagingLandScapeData2D_HeightFieldBlendNeighbor.cpp:: undefined reference to `Ogre::Image::load(stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&)'
OgrePagingLandScapeData2D_HeightFieldBlendNeighbor.cpp:: undefined reference to `Ogre::ResourceGroupManager::resourceExists(stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&)'
OgrePagingLandScapeData2D_HeightFieldBlendNeighbor.cpp:: undefined reference to `Ogre::Image::load(stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&)'
OgrePagingLandScapeData2D_HeightFieldBlendNeighbor.cpp:: undefined reference to `Ogre::ResourceGroupManager::resourceExists(stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&)'
OgrePagingLandScapeData2D_HeightFieldBlendNeighbor.cpp:: undefined reference to `Ogre::Image::load(stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&)'
OgrePagingLandScapeData2D_HeightFieldBlendNeighbor.cpp:: undefined reference to `Ogre::Image::load(stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&)'
OgrePagingLandScapeData2D_HeightFieldBlendNeighbor.cpp:: undefined reference to `Ogre::LogManager::logMessage(stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, Ogre::LogMessageLevel, bool)'
OgrePagingLandScapeData2D_HeightFieldBlendNeighbor.cpp:: undefined reference to `Ogre::ResourceGroupManager::resourceExists(stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&)'
OgrePagingLandScapeData2D_HeightFieldBlendNeighbor.cpp:: undefined reference to `Ogre::Image::load(stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&, stlp_std::basic_string<char, stlp_std::char_traits<char>, stlp_std::allocator<char> > const&)'
:: More errors follow but not being shown.
:: Edit the max errors limit in compiler options...
:: === Build finished: 50 errors, 0 warnings ===


the problem seems to originate in OgreMain_d.dll. release version OgreMain.dll works fine but as soon as i use debug version OgreMain_d.dll (i tried using it in release mode and i get the same error messages!) linking fails.

i use CodeBlocks nightly build (june 30 - didn't work either with older version) with gcc 3.4.2, linker GNU ld version 2.15.91 20040904, stlport 5.0
and for ogre is use prebuilt OGRE 1.2.1 SDK for Code::Blocks + MinGW + STLPort.

since many people use the prebuilt SDK, i hope someone has stumbled across this problem already...

EDIT: oh yeah, i'm using PLSM2 SDK-version
(link http://tuan.kuranes.free.fr/OgreSDK_PLSM2_source.zip)

jacmoe

02-07-2006 00:50:30

All these errors will go away if you define STLP_DEBUG (IIRC) - the errors are stl related. :wink:

Omni

02-07-2006 02:32:04

thanks! now it's working :D