I have tried to build OpenSceneGraph 3.2.0 with FBX support. But I am getting linker errors when linking with FBX SDK libraries. I have tried both 2013.3 version and 2014.1 version of the FBX SDK to no avail.
I am building a 32-bit version on Windows 7 with Visual Studio 2010.
I get the following errors with the 2013.3 FBX version:
Code:
IMPORTANT NOTE: The FBX SDK API changed substantially. Please define FBXSDK_NEW_API in your project and fix compilation errors as instructed in fbxsdk_compatibility.h.
fbxRAnimation.obj : error LNK2001: unresolved external symbol "private: static void (__cdecl* fbxsdk_2013_3::FbxAnimCurveKey::mDeallocatorFct)(class fbxsdk_2013_3::FbxAnimCurveKey_Impl *)" (?mDeallocatorFct@FbxAnimCurveKey@fbxsdk_2013_3@@0P6AXPAVFbxAnimCurveKey_Impl@2@@ZA)
fbxRMesh.obj : error LNK2019: unresolved external symbol "private: static void (__cdecl* fbxsdk_2013_3::FbxAnimCurveKey::mDeallocatorFct)(class fbxsdk_2013_3::FbxAnimCurveKey_Impl *)" (?mDeallocatorFct@FbxAnimCurveKey@fbxsdk_2013_3@@0P6AXPAVFbxAnimCurveKey_Impl@2@@ZA) referenced in function "class osg::Geometry * __cdecl getGeometry(class osg::Geode *,class std::map<unsigned int,class osg::ref_ptr<class osg::Geometry>,struct std::less<unsigned int>,class std::allocator<struct std::pair<unsigned int const ,class osg::ref_ptr<class osg::Geometry> > > > &,class std::vector<struct StateSetContent,class std::allocator<struct StateSetContent> > &,enum GeometryType,unsigned int,bool,bool,bool,bool,bool,class osgDB::Options const &,bool)" (?getGeometry@@YAPAVGeometry@osg@@PAVGeode@2@AAV?$map@IV?$ref_ptr@VGeometry@osg@@@osg@@U?$less@I@std@@V?$allocator@U?$pair@$$CBIV?$ref_ptr@VGeometry@osg@@@osg@@@std@@@4@@std@@AAV?$vector@UStateSetContent@@V?$allocator@UStateSetContent@@@std@@@5@W4Ge
ometryType@@I_N4444ABVOptions@osgDB@@4@Z)
fbxRAnimation.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2013_3::FbxClassId fbxsdk_2013_3::FbxAnimStack::ClassId" (?ClassId@FbxAnimStack@fbxsdk_2013_3@@2VFbxClassId@2@A)
fbxRMesh.obj : error LNK2019: unresolved external symbol "public: static class fbxsdk_2013_3::FbxClassId fbxsdk_2013_3::FbxAnimStack::ClassId" (?ClassId@FbxAnimStack@fbxsdk_2013_3@@2VFbxClassId@2@A) referenced in function "public: bool __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Grow(unsigned int,bool)" (?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE_NI_N@Z)
fbxRNode.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2013_3::FbxClassId fbxsdk_2013_3::FbxAnimStack::ClassId" (?ClassId@FbxAnimStack@fbxsdk_2013_3@@2VFbxClassId@2@A)
fbxRAnimation.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2013_3::FbxClassId fbxsdk_2013_3::FbxAnimLayer::ClassId" (?ClassId@FbxAnimLayer@fbxsdk_2013_3@@2VFbxClassId@2@A)
fbxRMesh.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2013_3::FbxClassId fbxsdk_2013_3::FbxAnimLayer::ClassId" (?ClassId@FbxAnimLayer@fbxsdk_2013_3@@2VFbxClassId@2@A)
fbxRNode.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2013_3::FbxClassId fbxsdk_2013_3::FbxAnimLayer::ClassId" (?ClassId@FbxAnimLayer@fbxsdk_2013_3@@2VFbxClassId@2@A)
fbxRCamera.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2013_3::FbxClassId fbxsdk_2013_3::FbxCamera::ClassId" (?ClassId@FbxCamera@fbxsdk_2013_3@@2VFbxClassId@2@A)
fbxRLight.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2013_3::FbxClassId fbxsdk_2013_3::FbxLight::ClassId" (?ClassId@FbxLight@fbxsdk_2013_3@@2VFbxClassId@2@A)
fbxRMesh.obj : error LNK2001: unresolved external symbol "public: static char const * const fbxsdk_2013_3::FbxSurfaceMaterial::sEmissive" (?sEmissive@FbxSurfaceMaterial@fbxsdk_2013_3@@2PBDB)
fbxMaterialToOsgStateSet.obj : error LNK2001: unresolved external symbol "public: static char const * const fbxsdk_2013_3::FbxSurfaceMaterial::sEmissive" (?sEmissive@FbxSurfaceMaterial@fbxsdk_2013_3@@2PBDB)
fbxRMesh.obj : error LNK2001: unresolved external symbol "public: static char const * const fbxsdk_2013_3::FbxSurfaceMaterial::sReflection" (?sReflection@FbxSurfaceMaterial@fbxsdk_2013_3@@2PBDB)
fbxMaterialToOsgStateSet.obj : error LNK2001: unresolved external symbol "public: static char const * const fbxsdk_2013_3::FbxSurfaceMaterial::sReflection" (?sReflection@FbxSurfaceMaterial@fbxsdk_2013_3@@2PBDB)
fbxRMesh.obj : error LNK2001: unresolved external symbol "public: static char const * const fbxsdk_2013_3::FbxSurfaceMaterial::sTransparentColor" (?sTransparentColor@FbxSurfaceMaterial@fbxsdk_2013_3@@2PBDB)
fbxMaterialToOsgStateSet.obj : error LNK2019: unresolved external symbol "public: static char const * const fbxsdk_2013_3::FbxSurfaceMaterial::sTransparentColor" (?sTransparentColor@FbxSurfaceMaterial@fbxsdk_2013_3@@2PBDB) referenced in function "public: __thiscall std::_Tree_unchecked_const_iterator<class std::_Tree_val<class std::_Tmap_traits<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class osg::Texture2D *,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 osg::Texture2D *> >,0> >,struct std::_Iterator_base12>::_Tree_unchecked_const_iterator<class std::_Tree_val<class std::_Tmap_traits<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class osg::Texture2D *,struct std::less<class std::basic_string<ch
ar,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 osg::Texture2D *> >,0> >,struct std::_Iterator_base12>(class std::_Tree_unchecked_const_iterator<class std::_Tree_val<class std::_Tmap_traits<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class osg::Texture2D *,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 osg::Texture2D *> >,0> >,struct std::_Iterator_base12> const &)" (??0?$_Tree_unchecked_const_iterator@V?$_Tree_val@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVTexture2D@osg@@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@@PAVTexture2D@osg@@@std@@@2@$0A@@std@@@std@@U_Iterator_base12@2@@std@@QAE@ABV01@@Z)
fbxRMesh.obj : error LNK2001: unresolved external symbol "public: static char const * const fbxsdk_2013_3::FbxSurfaceMaterial::sDiffuse" (?sDiffuse@FbxSurfaceMaterial@fbxsdk_2013_3@@2PBDB)
fbxMaterialToOsgStateSet.obj : error LNK2001: unresolved external symbol "public: static char const * const fbxsdk_2013_3::FbxSurfaceMaterial::sDiffuse" (?sDiffuse@FbxSurfaceMaterial@fbxsdk_2013_3@@2PBDB)
fbxRMesh.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2013_3::FbxClassId fbxsdk_2013_3::FbxBlendShape::ClassId" (?ClassId@FbxBlendShape@fbxsdk_2013_3@@2VFbxClassId@2@A)
fbxRMesh.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2013_3::FbxClassId fbxsdk_2013_3::FbxMesh::ClassId" (?ClassId@FbxMesh@fbxsdk_2013_3@@2VFbxClassId@2@A)
ReaderWriterFBX.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2013_3::FbxAxisSystem const fbxsdk_2013_3::FbxAxisSystem::OpenGL" (?OpenGL@FbxAxisSystem@fbxsdk_2013_3@@2V12@B)
ReaderWriterFBX.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2013_3::FbxClassId fbxsdk_2013_3::FbxGeometry::ClassId" (?ClassId@FbxGeometry@fbxsdk_2013_3@@2VFbxClassId@2@A)
fbxMaterialToOsgStateSet.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2013_3::FbxClassId fbxsdk_2013_3::FbxFileTexture::ClassId" (?ClassId@FbxFileTexture@fbxsdk_2013_3@@2VFbxClassId@2@A)
fbxMaterialToOsgStateSet.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2013_3::FbxClassId fbxsdk_2013_3::FbxSurfaceLambert::ClassId" (?ClassId@FbxSurfaceLambert@fbxsdk_2013_3@@2VFbxClassId@2@A)
fbxMaterialToOsgStateSet.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2013_3::FbxClassId fbxsdk_2013_3::FbxSurfacePhong::ClassId" (?ClassId@FbxSurfacePhong@fbxsdk_2013_3@@2VFbxClassId@2@A)
C:\OpenSceneGraph\bin\osgPlugins-3.2.0\osgdb_fbxd.dll : fatal error LNK1120: 16 unresolved externals
And the following errors with the 2014.1 FBX version:
Code:
2>fbxRAnimation.obj : error LNK2001: unresolved external symbol "private: static void (__cdecl* fbxsdk_2014_1::FbxAnimCurveKey::mDeallocatorFct)(class fbxsdk_2014_1::FbxAnimCurveKey_Impl *)" (?mDeallocatorFct@FbxAnimCurveKey@fbxsdk_2014_1@@0P6AXPAVFbxAnimCurveKey_Impl@2@@ZA)
fbxRMesh.obj : error LNK2019: unresolved external symbol "private: static void (__cdecl* fbxsdk_2014_1::FbxAnimCurveKey::mDeallocatorFct)(class fbxsdk_2014_1::FbxAnimCurveKey_Impl *)" (?mDeallocatorFct@FbxAnimCurveKey@fbxsdk_2014_1@@0P6AXPAVFbxAnimCurveKey_Impl@2@@ZA) referenced in function "class osg::Geometry * __cdecl getGeometry(class osg::Geode *,class std::map<unsigned int,class osg::ref_ptr<class osg::Geometry>,struct std::less<unsigned int>,class std::allocator<struct std::pair<unsigned int const ,class osg::ref_ptr<class osg::Geometry> > > > &,class std::vector<struct StateSetContent,class std::allocator<struct StateSetContent> > &,enum GeometryType,unsigned int,bool,bool,bool,bool,bool,class osgDB::Options const &,bool)" (?getGeometry@@YAPAVGeometry@osg@@PAVGeode@2@AAV?$map@IV?$ref_ptr@VGeometry@osg@@@osg@@U?$less@I@std@@V?$allocator@U?$pair@$$CBIV?$ref_ptr@VGeometry@osg@@@osg@@@std@@@4@@std@@AAV?$vector@UStateSetContent@@V?$allocator@UStateSetContent@@@std@@@5@W4Ge
ometryType@@I_N4444ABVOptions@osgDB@@4@Z)
fbxRAnimation.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2014_1::FbxClassId fbxsdk_2014_1::FbxAnimStack::ClassId" (?ClassId@FbxAnimStack@fbxsdk_2014_1@@2VFbxClassId@2@A)
fbxRMesh.obj : error LNK2019: unresolved external symbol "public: static class fbxsdk_2014_1::FbxClassId fbxsdk_2014_1::FbxAnimStack::ClassId" (?ClassId@FbxAnimStack@fbxsdk_2014_1@@2VFbxClassId@2@A) referenced in function "public: bool __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Grow(unsigned int,bool)" (?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE_NI_N@Z)
fbxRNode.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2014_1::FbxClassId fbxsdk_2014_1::FbxAnimStack::ClassId" (?ClassId@FbxAnimStack@fbxsdk_2014_1@@2VFbxClassId@2@A)
fbxRAnimation.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2014_1::FbxClassId fbxsdk_2014_1::FbxAnimLayer::ClassId" (?ClassId@FbxAnimLayer@fbxsdk_2014_1@@2VFbxClassId@2@A)
fbxRMesh.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2014_1::FbxClassId fbxsdk_2014_1::FbxAnimLayer::ClassId" (?ClassId@FbxAnimLayer@fbxsdk_2014_1@@2VFbxClassId@2@A)
fbxRNode.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2014_1::FbxClassId fbxsdk_2014_1::FbxAnimLayer::ClassId" (?ClassId@FbxAnimLayer@fbxsdk_2014_1@@2VFbxClassId@2@A)
fbxRCamera.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2014_1::FbxClassId fbxsdk_2014_1::FbxCamera::ClassId" (?ClassId@FbxCamera@fbxsdk_2014_1@@2VFbxClassId@2@A)
fbxRLight.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2014_1::FbxClassId fbxsdk_2014_1::FbxLight::ClassId" (?ClassId@FbxLight@fbxsdk_2014_1@@2VFbxClassId@2@A)
fbxRMesh.obj : error LNK2001: unresolved external symbol "public: static char const * const fbxsdk_2014_1::FbxSurfaceMaterial::sEmissive" (?sEmissive@FbxSurfaceMaterial@fbxsdk_2014_1@@2PBDB)
fbxMaterialToOsgStateSet.obj : error LNK2001: unresolved external symbol "public: static char const * const fbxsdk_2014_1::FbxSurfaceMaterial::sEmissive" (?sEmissive@FbxSurfaceMaterial@fbxsdk_2014_1@@2PBDB)
fbxRMesh.obj : error LNK2001: unresolved external symbol "public: static char const * const fbxsdk_2014_1::FbxSurfaceMaterial::sReflection" (?sReflection@FbxSurfaceMaterial@fbxsdk_2014_1@@2PBDB)
fbxMaterialToOsgStateSet.obj : error LNK2001: unresolved external symbol "public: static char const * const fbxsdk_2014_1::FbxSurfaceMaterial::sReflection" (?sReflection@FbxSurfaceMaterial@fbxsdk_2014_1@@2PBDB)
fbxRMesh.obj : error LNK2001: unresolved external symbol "public: static char const * const fbxsdk_2014_1::FbxSurfaceMaterial::sTransparentColor" (?sTransparentColor@FbxSurfaceMaterial@fbxsdk_2014_1@@2PBDB)
fbxMaterialToOsgStateSet.obj : error LNK2001: unresolved external symbol "public: static char const * const fbxsdk_2014_1::FbxSurfaceMaterial::sTransparentColor" (?sTransparentColor@FbxSurfaceMaterial@fbxsdk_2014_1@@2PBDB)
fbxRMesh.obj : error LNK2001: unresolved external symbol "public: static char const * const fbxsdk_2014_1::FbxSurfaceMaterial::sDiffuse" (?sDiffuse@FbxSurfaceMaterial@fbxsdk_2014_1@@2PBDB)
fbxMaterialToOsgStateSet.obj : error LNK2001: unresolved external symbol "public: static char const * const fbxsdk_2014_1::FbxSurfaceMaterial::sDiffuse" (?sDiffuse@FbxSurfaceMaterial@fbxsdk_2014_1@@2PBDB)
fbxRMesh.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2014_1::FbxClassId fbxsdk_2014_1::FbxBlendShape::ClassId" (?ClassId@FbxBlendShape@fbxsdk_2014_1@@2VFbxClassId@2@A)
fbxRMesh.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2014_1::FbxClassId fbxsdk_2014_1::FbxMesh::ClassId" (?ClassId@FbxMesh@fbxsdk_2014_1@@2VFbxClassId@2@A)
ReaderWriterFBX.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2014_1::FbxAxisSystem const fbxsdk_2014_1::FbxAxisSystem::OpenGL" (?OpenGL@FbxAxisSystem@fbxsdk_2014_1@@2V12@B)
ReaderWriterFBX.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2014_1::FbxClassId fbxsdk_2014_1::FbxGeometry::ClassId" (?ClassId@FbxGeometry@fbxsdk_2014_1@@2VFbxClassId@2@A)
fbxMaterialToOsgStateSet.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2014_1::FbxClassId fbxsdk_2014_1::FbxFileTexture::ClassId" (?ClassId@FbxFileTexture@fbxsdk_2014_1@@2VFbxClassId@2@A)
fbxMaterialToOsgStateSet.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2014_1::FbxClassId fbxsdk_2014_1::FbxSurfaceLambert::ClassId" (?ClassId@FbxSurfaceLambert@fbxsdk_2014_1@@2VFbxClassId@2@A)
fbxMaterialToOsgStateSet.obj : error LNK2001: unresolved external symbol "public: static class fbxsdk_2014_1::FbxClassId fbxsdk_2014_1::FbxSurfacePhong::ClassId" (?ClassId@FbxSurfacePhong@fbxsdk_2014_1@@2VFbxClassId@2@A)
C:\OpenSceneGraph\bin\osgPlugins-3.2.0\osgdb_fbxd.dll : fatal error LNK1120: 16 unresolved externals
Cheers,
Björn[/code]
------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=55825#55825
_______________________________________________
osg-users mailing list
osg-...@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
did you follow the advice in the first error message?
Also I noted that I had to enter the correct library by hand in the
cmakegui. There are obviously md and mt versions of the lib, so may play
around with those.
I tried to add the define FBXSDK_NEW_API when compiling with the 2013.3 version, but that didn't solve anything.
But then I tried linking with the MT and MD versions. And when I linked against the MD version the compilation succeed both with 2013.3 version and the 2014.1 version of the FBX SDK.
(Linking with the MT version gave even more linker errors than the previous attempt).
Thank you!
Cheers,
Björn
------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=55827#55827