using collada with vs 2008 - unresolved symbols

mickey
Posts: 107
Joined: Fri Sep 19, 2008 6:08 pm

using collada with vs 2008 - unresolved symbols

Post by mickey »

tried a lot of combination already - including (but not limited to) copying exactly the visual studio setting in the bullet collada example setting:

c++ -> code generation -> runtime library = multi-threaded (/MT)
linker -> input -> ignore specific library = LIBC, LIBCD

as well as setting the includes and the libraries. I even set this one as the IDE said: /NODEFAULTLIB:libcmt.lib

and now I am stuck with these last 2 unresolve symbol errors:

1>libcolladadom.lib(daeSTLDatabase.obj) : error LNK2019: unresolved external symbol __invalid_parameter_noinfo referenced in function "public: class daeDocument * & __thiscall std::vector<class daeDocument *,class std::allocator<class daeDocument *> >::operator[](unsigned int)" (??A?$vector@PAVdaeDocument@@V?$allocator@PAVdaeDocument@@@std@@@std@@QAEAAPAVdaeDocument@@I@Z)

1>libcolladadom.lib(daeLIBXMLPlugin.obj) : error LNK2001: unresolved external symbol __invalid_parameter_noinfo

If i did not including the /NODEFAULTLIB directive i would get this additional errors:

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)

Please let me know what the correct settings should be, apparently just copying the setting in bullet's collada demo would not suffice. I am compiling against DirectX libraries, including using STL if that helps.

Thanks in advance.

David
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA

Re: using collada with vs 2008 - unresolved symbols

Post by Erwin Coumans »

Have you tried the standard Bullet demos, using the included solution file? Does it work fine?

It seems your project mixes debug and release version of LIBCMT/LIBCMTD, are you sure all libraries use c++ -> code generation -> runtime library = multi-threaded (/MT)?
it looks like at least one of them uses c++ -> code generation -> runtime library = multi-threaded debug (/MT)

This doesn't seem to be a Bullet issue, perhaps try the COLLADA forums?
Thanks,
Erwin
mickey
Posts: 107
Joined: Fri Sep 19, 2008 6:08 pm

[SOLVED] Re: using collada with vs 2008 - unresolved symbols

Post by mickey »

Thanks Erwin!

You gave me an idea. I was mixing the release libraries with debug libraries and VS debug/release settings.

I set them all correctly to debug settings and libraries.

Cheers,

David