OIS dependency building SVN demos under Windows


19-03-2007 21:48:25

I just finished building SVN Eihort OgreAL from source against Ogre CVS by following the awesome instructions given in this sticky thread, http://www.ogre3d.org/phpBB2addons/viewtopic.php?t=3293.

A minor problem is that the demos fail to link because of OIS issues. I don't see references to OIS though in the Visual Studio .NET project files. Thoughts?

Listener.cpp(31) : warning C4267: 'argument' : conversion from 'size_t' to 'unsigned int', possible loss of data
Listener.obj : error LNK2001: unresolved external symbol "public: static void __cdecl OIS::InputManager::destroyInputSystem(class OIS::InputManager *)" (?destroyInputSystem@InputManager@OIS@@SAXPAV12@@Z)
Listener.obj : error LNK2001: unresolved external symbol "public: static class OIS::InputManager * __cdecl OIS::InputManager::createInputSystem(class std::multimap<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > > &)" (?createInputSystem@InputManager@OIS@@SAPAV12@AAV?$multimap@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@@2@@std@@@Z)
C:\Packages\python-ogre\OgreAL\Demos\MultiChannel_Demo\Release/MultiChannel_Demo.exe : fatal error LNK1120: 2 unresolved externals


19-03-2007 22:07:26

The version of OIS that the demos use are distributed with the Ogre dependencies and are referenced by the$(OGRE_SRC)/Dependencies/lib/in the project properties, and the includes should look like#include "OIS/OISInputManager.h"


19-03-2007 22:25:03

Strange, the dependencies (OgreDependencies_VC71SP1_Eihort_20070127.zip) are there:

ogrenew$ pwd

ogrenew$ ls Dependencies/include/OIS/
OIS.h OISEvents.h OISInputManager.h OISKeyboard.h OISPrereqs.h
OISConfig.h OISException.h OISInterface.h OISMouse.h
OISEffect.h OISForceFeedback.h OISJoyStick.h OISObject.h

ogrenew$ ls Dependencies/lib/Release/
CEGUIBase.lib FreeImage.lib freetype230.lib zziplib.lib
CEGUIExpatParser.lib OIS.lib ode.lib
CEGUIFalagardWRBase.lib cg.lib zlib.lib

ogrenew$ ls -d ../OgreAL/

Any ideas what the problem could be?


19-03-2007 23:30:09

Ok, threw me off for a minute with Cygwin! Do you see those lines in the project? I haven't touched the VS7.1 project files in a while, but I thought they were up to date.


20-03-2007 05:00:37

The demo projects are missing OIS.lib and OIS_d.lib in the link libs ...


20-03-2007 05:58:26

Ok, I'll fix that! Thanks!


20-03-2007 06:16:17

No problem. Thanks very much for OgreAL. I just got it built from source and am impressed with the demos. I was shocked at the low frame rates at first - and then I released I was running in debug builds ;-)


25-03-2007 23:31:53

With the new Ogre 1.4.0, the demos are quite outdated. Look forward to the update on Demos! Thanks for the great work.