[SOLVED][PARTIALLY]Help needed with installation errors

jKettu

13-12-2013 22:33:10

This is hard work :) ... am soon giving up with this OgreBullet if its not installing. Used 2 days already...
So, I have WinXP, VC++2008. Ogre and bullet libraries working ok. I tried to follow "Building OgreBullet with OgreSDK 1.8.1 on Windows. " many times but it (OgreBullet_VC8) always ends up (the Dynamics_Demos...the other two project compile without errors) with errors like:

1>------ Build started: Project: Dynamics_Demos, Configuration: Debug Win32 ------
1>Linking...
1>LINK : warning LNK4224: /OPT:NOWIN98 is no longer supported; ignored
1>LIBCMT.lib(invarg.obj) : error LNK2005: __initp_misc_invarg already defined in LIBCMTD.lib(invarg.obj)
1>LIBCMT.lib(invarg.obj) : error LNK2005: __invoke_watson already defined in LIBCMTD.lib(invarg.obj)
1>LIBCMT.lib(invarg.obj) : error LNK2005: __set_invalid_parameter_handler already defined in LIBCMTD.lib(invarg.obj)
1>LIBCMT.lib(invarg.obj) : error LNK2005: __get_invalid_parameter_handler already defined in LIBCMTD.lib(invarg.obj)
1>LIBCMT.lib(invarg.obj) : error LNK2005: "void __cdecl _invoke_watson(unsigned short const *,unsigned short const *,unsigned short const *,unsigned int,unsigned int)" (?_invoke_watson@@YAXPBG00II@Z) already defined in LIBCMTD.lib(invarg.obj)
1>LIBCMT.lib(invarg.obj) : error LNK2005: __invalid_parameter already defined in LIBCMTD.lib(invarg.obj)
1>LIBCMT.lib(invarg.obj) : error LNK2005: "void __cdecl _invalid_parameter(unsigned short const *,unsigned short const *,unsigned short const *,unsigned int,unsigned int)" (?_invalid_parameter@@YAXPBG00II@Z) already defined in LIBCMTD.lib(invarg.obj)
1>LIBCMT.lib(invarg.obj) : error LNK2005: ___pInvalidArgHandler already defined in LIBCMTD.lib(invarg.obj)
1> Creating library ..\..\..\/OgreBulletDynamicsDemo_d.lib and object ..\..\..\/OgreBulletDynamicsDemo_d.exp
1>LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
1>..\..\..\/OgreBulletDynamicsDemo_d.exe : fatal error LNK1169: one or more multiply defined symbols found

I did the installation process like 4-5 times, and used different combinations of Runtime Libary options (/MD, /MDd ... etc). I have a paid version of VC++2008 so would preferably use it, but I don't mind to switch to VC++2010 (express) if it needs it. Anybody has a combination of WinXP+bullet+OGRE+OGREbullet+VC++ (and versions on each of them pls) which works "from the box" without much tweaking, that would be nice. Or is there any detailed instuctions on this ("Building OgreBullet with OgreSDK 1.8.1 on Windows. " just does not seem to work in my pc)?

I was thinking: Is the problem that all libraries must have exatcly the same Runtime Libaries (like /MD...)? So all bullet+OGRE+OGREbullet+VC++ and even boost. That's the problem?

Thanks

jKettu

14-12-2013 03:15:36

Ok, I googled and found a go around solution for this proglem, its "using /FORCE:MULTIPLE as an additional linker command line option". After that the release version compiles and seems to run correctly. But this is definitely not the correct way, so still would like to know the real reason. Anyway, lets me to start using the library at least somehow so good start.

They said there is a conflict of debug and release linking there. Just to know which libraries causing this...

AlexeyKnyshev

14-12-2013 18:53:55

May I mark this topic as [SOLVED]?

jKettu

14-12-2013 19:45:14

May I mark this topic as [SOLVED]?

You could, although its only "half solved" as the debug ver. does not work. Also would like to know if 2010 compiler does not have this problem.

AE86takumi

22-12-2013 03:07:50

I can verify that VS2010 does have the same issue. I gave up on getting the demos to work after a while since the most important part is to compile the OgreBulletCollisions and OgreBulletDynamics projects. Once you link those libraries to ur own project then it should work fine.

PS: I'm not using /FORCE:MULTIPLE.