Download

How to include FBX SDK in my project?

I need to do runtime stuff involving FBX, so having learned that UE4’s own FBX functions are Editor-only (and thus can’t be included for runtime), I’m now trying to integrate the FBX SDK into my project. I’m very new to C++ so this is way over my head right now.

Autodesk’s own instructions for using the FBX SDK in a project (link below) are useless, because none of those steps seem to apply to an Unreal project.

So I tried simply adding the files from the FBX SDK ‘include’ folder into the Source folder of my project - these files consist of a header (‘fbxsdk.h’) and a folder containing a lot of other files.

Then in a C++ Actor class I added #include “fbxsdk.h” to the header and tried to build. It threw all these errors:


unresolved external symbol "public: __cdecl fbxsdk::FbxString::~FbxString(void)" (??1FbxString@fbxsdk@@QEAA@XZ)
unresolved external symbol "void * __cdecl fbxsdk::FbxMalloc(unsigned __int64)" (?FbxMalloc@fbxsdk@@YAPEAX_K@Z) referenced in function "public: class fbxsdk::FbxPair<class fbxsdk::FbxRedBlackTree<class fbxsdk::FbxMap<class fbxsdk::FbxString,class fbxsdk::FbxObject *,struct fbxsdk::FbxStringCompare,class fbxsdk::FbxBaseAllocator>::KeyValuePair,struct fbxsdk::FbxStringCompare,class fbxsdk::FbxBaseAllocator>::RecordType *,bool> __cdecl fbxsdk::FbxRedBlackTree<class fbxsdk::FbxMap<class fbxsdk::FbxString,class fbxsdk::FbxObject *,struct fbxsdk::FbxStringCompare,class fbxsdk::FbxBaseAllocator>::KeyValuePair,struct fbxsdk::FbxStringCompare,class fbxsdk::FbxBaseAllocator>::Insert(class fbxsdk::FbxMap<class fbxsdk::FbxString,class fbxsdk::FbxObject *,struct fbxsdk::FbxStringCompare,class fbxsdk::FbxBaseAllocator>::KeyValuePair const &)" (?Insert@?$FbxRedBlackTree@VKeyValuePair@?$FbxMap@VFbxString@fbxsdk@@PEAVFbxObject@2@UFbxStringCompare@2@VFbxBaseAllocator@2@@fbxsdk@@UFbxStringCompare@3@VFbxBaseAllocator@3@@fbxsdk@@QEAA?AV?$FbxPair@PEAVRecordType@?$FbxRedBlackTree@VKeyValuePair@?$FbxMap@VFbxString@fbxsdk@@PEAVFbxObject@2@UFbxStringCompare@2@VFbxBaseAllocator@2@@fbxsdk@@UFbxStringCompare@3@VFbxBaseAllocator@3@@fbxsdk@@_N@2@AEBVKeyValuePair@?$FbxMap@VFbxString@fbxsdk@@PEAVFbxObject@2@UFbxStringCompare@2@VFbxBaseAllocator@2@@2@@Z)
unresolved external symbol "void * __cdecl fbxsdk::FbxMalloc(unsigned __int64)" (?FbxMalloc@fbxsdk@@YAPEAX_K@Z)
unresolved external symbol "void __cdecl fbxsdk::FbxFree(void *)" (?FbxFree@fbxsdk@@YAXPEAX@Z) referenced in function "public: void __cdecl fbxsdk::FbxRedBlackTree<class fbxsdk::FbxMap<class fbxsdk::FbxString,class fbxsdk::FbxObject *,struct fbxsdk::FbxStringCompare,class fbxsdk::FbxBaseAllocator>::KeyValuePair,struct fbxsdk::FbxStringCompare,class fbxsdk::FbxBaseAllocator>::Clear(void)" (?Clear@?$FbxRedBlackTree@VKeyValuePair@?$FbxMap@VFbxString@fbxsdk@@PEAVFbxObject@2@UFbxStringCompare@2@VFbxBaseAllocator@2@@fbxsdk@@UFbxStringCompare@3@VFbxBaseAllocator@3@@fbxsdk@@QEAAXXZ)
unresolved external symbol "void __cdecl fbxsdk::FbxFree(void *)" (?FbxFree@fbxsdk@@YAXPEAX@Z)
unresolved external symbol "public: __cdecl fbxsdk::FbxString::FbxString(class fbxsdk::FbxString const &)" (??0FbxString@fbxsdk@@QEAA@AEBV01@@Z) referenced in function "public: class fbxsdk::FbxPair<class fbxsdk::FbxRedBlackTree<class fbxsdk::FbxMap<class fbxsdk::FbxString,class fbxsdk::FbxObject *,struct fbxsdk::FbxStringCompare,class fbxsdk::FbxBaseAllocator>::KeyValuePair,struct fbxsdk::FbxStringCompare,class fbxsdk::FbxBaseAllocator>::RecordType *,bool> __cdecl fbxsdk::FbxMap<class fbxsdk::FbxString,class fbxsdk::FbxObject *,struct fbxsdk::FbxStringCompare,class fbxsdk::FbxBaseAllocator>::Insert(class fbxsdk::FbxString const &,class fbxsdk::FbxObject * const &)" (?Insert@?$FbxMap@VFbxString@fbxsdk@@PEAVFbxObject@2@UFbxStringCompare@2@VFbxBaseAllocator@2@@fbxsdk@@QEAA?AV?$FbxPair@PEAVRecordType@?$FbxRedBlackTree@VKeyValuePair@?$FbxMap@VFbxString@fbxsdk@@PEAVFbxObject@2@UFbxStringCompare@2@VFbxBaseAllocator@2@@fbxsdk@@UFbxStringCompare@3@VFbxBaseAllocator@3@@fbxsdk@@_N@2@AEBVFbxString@2@AEBQEAVFbxObject@2@@Z)
unresolved external symbol "public: __cdecl fbxsdk::FbxString::FbxString(class fbxsdk::FbxString const &)" (??0FbxString@fbxsdk@@QEAA@AEBV01@@Z)
unresolved external symbol "public: __cdecl fbxsdk::FbxString::~FbxString(void)" (??1FbxString@fbxsdk@@QEAA@XZ) referenced in function "public: __cdecl fbxsdk::FbxMap<class fbxsdk::FbxString,class fbxsdk::FbxObject *,struct fbxsdk::FbxStringCompare,class fbxsdk::FbxBaseAllocator>::KeyValuePair::~KeyValuePair(void)" (??1KeyValuePair@?$FbxMap@VFbxString@fbxsdk@@PEAVFbxObject@2@UFbxStringCompare@2@VFbxBaseAllocator@2@@fbxsdk@@QEAA@XZ)
unresolved external symbol "public: __cdecl fbxsdk::FbxString::operator char const *(void)const " (??BFbxString@fbxsdk@@QEBAPEBDXZ) referenced in function "public: class fbxsdk::FbxRedBlackTree<class fbxsdk::FbxMap<class fbxsdk::FbxString,class fbxsdk::FbxObject *,struct fbxsdk::FbxStringCompare,class fbxsdk::FbxBaseAllocator>::KeyValuePair,struct fbxsdk::FbxStringCompare,class fbxsdk::FbxBaseAllocator>::RecordType * __cdecl fbxsdk::FbxSimpleMap<class fbxsdk::FbxString,class fbxsdk::FbxObject *,struct fbxsdk::FbxStringCompare>::Find(class fbxsdk::FbxString const &)const " (?Find@?$FbxSimpleMap@VFbxString@fbxsdk@@PEAVFbxObject@2@UFbxStringCompare@2@@fbxsdk@@QEBAPEAVRecordType@?$FbxRedBlackTree@VKeyValuePair@?$FbxMap@VFbxString@fbxsdk@@PEAVFbxObject@2@UFbxStringCompare@2@VFbxBaseAllocator@2@@fbxsdk@@UFbxStringCompare@3@VFbxBaseAllocator@3@@2@AEBVFbxString@2@@Z)
unresolved external symbol "public: __cdecl fbxsdk::FbxString::operator char const *(void)const " (??BFbxString@fbxsdk@@QEBAPEBDXZ)
unresolved external symbol "public: int __cdecl fbxsdk::FbxString::Compare(char const *)const " (?Compare@FbxString@fbxsdk@@QEBAHPEBD@Z) referenced in function "public: class fbxsdk::FbxRedBlackTree<class fbxsdk::FbxMap<class fbxsdk::FbxString,class fbxsdk::FbxObject *,struct fbxsdk::FbxStringCompare,class fbxsdk::FbxBaseAllocator>::KeyValuePair,struct fbxsdk::FbxStringCompare,class fbxsdk::FbxBaseAllocator>::RecordType * __cdecl fbxsdk::FbxSimpleMap<class fbxsdk::FbxString,class fbxsdk::FbxObject *,struct fbxsdk::FbxStringCompare>::Find(class fbxsdk::FbxString const &)const " (?Find@?$FbxSimpleMap@VFbxString@fbxsdk@@PEAVFbxObject@2@UFbxStringCompare@2@@fbxsdk@@QEBAPEAVRecordType@?$FbxRedBlackTree@VKeyValuePair@?$FbxMap@VFbxString@fbxsdk@@PEAVFbxObject@2@UFbxStringCompare@2@VFbxBaseAllocator@2@@fbxsdk@@UFbxStringCompare@3@VFbxBaseAllocator@3@@2@AEBVFbxString@2@@Z)
unresolved external symbol "public: int __cdecl fbxsdk::FbxString::Compare(char const *)const " (?Compare@FbxString@fbxsdk@@QEBAHPEBD@Z)
6 unresolved externals

I mean, I wasn’t really expecting it be as easy as just adding those files to my source, but I have no idea (even after a couple of hours googling) what this really means, nor how to resolve it.

Can anyone help me out?