FCollada linking problems

Hi!
I download FCollada version 1.11 static libraries and create simple sample:

#include "FCollada.h"
#include "FCDocument/FCDocument.h"
void main()
{
	FCDocument doc;
}

Visual Studio 2003 linker write me 770 error messages, for example:

FColladaSD.lib(FCDocument.obj) : error LNK2019: unresolved external symbol "public: __thiscall FUFileManager::FUFileManager(void)" (??0FUFileManager@@QAE@XZ) referenced in function "public: __thiscall FCDocument::FCDocument(void)" (??0FCDocument@@QAE@XZ)
FColladaSD.lib(FCDocument.obj) : error LNK2019: unresolved external symbol "public: __thiscall FUFileManager::~FUFileManager(void)" (??1FUFileManager@@QAE@XZ) referenced in function "public: void * __thiscall FUFileManager::`scalar deleting destructor'(unsigned int)" (??_GFUFileManager@@QAEPAXI@Z)
FColladaSD.lib(FCDocument.obj) : error LNK2019: unresolved external symbol "long __cdecl FUDaeParser::ReadTargetMatrixElement(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &)" (?ReadTargetMatrixElement@FUDaeParser@@YAJAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) referenced in function "public: void __thiscall FCDocument::FindAnimationChannelsArrayIndices(struct _xmlNode *,class vector<long> &)" (?FindAnimationChannelsArrayIndices@FCDocument@@QAEXPAU_xmlNode@@AAV?$vector@J@@@Z)
FColladaSD.lib(FCDAnimated.obj) : error LNK2001: unresolved external symbol "long __cdecl FUDaeParser::ReadTargetMatrixElement(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &)" (?ReadTargetMatrixElement@FUDaeParser@@YAJAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
FColladaSD.lib(FCDAnimationChannel.obj) : error LNK2001: unresolved external symbol "long __cdecl FUDaeParser::ReadTargetMatrixElement(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &)" (?ReadTargetMatrixElement@FUDaeParser@@YAJAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)

Hello,

This is a known issue. We have since fixed the issue. You can temporarily use previous versions of FCollada or build from the FCollada source or wait for the new release that will be coming today.

Sincerely,

Thanx. I download new version of FCollada, and link test project on Visual Studio 2003. But my real work project build in Visual Studio 2005, and when i trying to link it, output two link error:

FColladaSU_MTD.lib(FUFileManager.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::iterator __thiscall std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::begin(void)" (__imp_?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@XZ) referenced in function "public: class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > __thiscall FUFileManager::MakeFilePathAbsolute(class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > const &)const " (?MakeFilePathAbsolute@FUFileManager@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@ABV23@@Z)

FColladaSU_MTD.lib(FUFileManager.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::iterator __thiscall std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::end(void)" (__imp_?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AViterator@12@XZ) referenced in function "public: class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > __thiscall FUFileManager::MakeFilePathAbsolute(class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > const &)const " (?MakeFilePathAbsolute@FUFileManager@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@ABV23@@Z)

Then i download source code FCollada, and compile it in Visual Studio 2005( with some complie errors, but i cope with it ). When i link my test project with compiled .lib files, linker give me 796 errors.

Here some of:


FColladaSU_MTD.lib(FCDEffectCode.obj) : error LNK2001: unresolved external symbol "public: virtual __thiscall FUObject::~FUObject(void)" (??1FUObject@@UAE@XZ)

FColladaSU_MTD.lib(FCDEffectPass.obj) : error LNK2001: unresolved external symbol "public: virtual __thiscall FUObject::~FUObject(void)" (??1FUObject@@UAE@XZ)

FColladaSU_MTD.lib(FCDEffectPassShader.obj) : error LNK2001: unresolved external symbol "public: virtual __thiscall FUObject::~FUObject(void)" (??1FUObject@@UAE@XZ)

Hello,

At this point in time, we have no plans yet to upgrade to MSVS 2005. If you do fix the errors and want to send us a patch, we’ll modify the code which causes issues in MSVS 2005.

Sincerely,

I just downloaded the latest version of Fcollada on the website. It all appears to compile fine except the FColladaTest application doesn’t compile.

The first thing it complains about is the following missing source files. Which do, indeed, appear to be missing.

c1xx : fatal error C1083: Cannot open source file: ‘.\fctestxref\FCTestXRefTree.cpp’: No such file or directory
FCTestXRefSimple.cpp
c1xx : fatal error C1083: Cannot open source file: ‘.\fctestxref\FCTestXRefSimple.cpp’: No such file or directory
FCTestXRefAcyclic.cpp
FCTestXRef.cpp

If I remove those source files, it builds but fails at link time.

I just now tried a different build configruation ‘Debug_Unicode’ and it linked correctly after I remove dthe line 'RUN_TESTSUITE(FCTestXRef)

How is that the project got uploaded with missing source files?

Do you now check to see if it builds in all configurations?

If it is only supposed to be built with UNICODE (which is fine by me) why not get rid of the non-UNICODE builds?

Thanks,

John

If you experience some issues with our software, please post on our public bugzilla:

http://www.feelingsoftware.com/bugzilla

About the non-UNICODE builds: ColladaMaya and ColladaMax both use the non-UNICODE builds. The viewer uses the UNICODE build and I believe Unicode is the way to go for all tools.