So I’ve been fighting with this issue for a few days now with no progress and decided to post it here. I needed an FSkeletalMeshMerge for a project but was unhappy with the gamethread hit so began to try to write a new class to handle this in a customized manner.
I’ve run into a problem though in linking and have found no way to resolve it to date. Have been unable to find any similar posts in the AnswerHub which were helpful in any way. When linking I receive the following errors:
Error LNK2019 unresolved external symbol “private: void __cdecl FSkinWeightVertexBuffer::AllocateData(void)” (?AllocateData@FSkinWeightVertexBuffer@@AEAAXXZ) referenced in function “private: void __cdecl UMergedMeshComponent::NEWGenerateLODModel<struct TGPUSkinVertexFloat16Uvs<1>,struct TSkinWeightInfo<1> >(int)” (??$NEWGenerateLODModel@U?$TGPUSkinVertexFloat16Uvs@$00@@anonymous_user_15ea635e?$TSkinWeightInfo@$00@@@UMergedMeshComponent@@AEAAXH@Z) CleanThirdPerson E:\MyProject\Intermediate\ProjectFiles\MergedMeshComponent.cpp.obj 1
Error LNK2019 unresolved external symbol “public: void __cdecl FSkeletalMeshVertexBuffer::SetNeedsCPUAccess(bool)” (?SetNeedsCPUAccess@FSkeletalMeshVertexBuffer@@QEAAX_N@Z) referenced in function “private: void __cdecl UMergedMeshComponent::NEWGenerateLODModel<struct TGPUSkinVertexFloat16Uvs<1>,struct TSkinWeightInfo<1> >(int)” (??$NEWGenerateLODModel@U?$TGPUSkinVertexFloat16Uvs@$00@@anonymous_user_15ea635e?$TSkinWeightInfo@$00@@@UMergedMeshComponent@@AEAAXH@Z) CleanThirdPerson E:\MyProject\Intermediate\ProjectFiles\MergedMeshComponent.cpp.obj 1
Error LNK2019 unresolved external symbol “private: void __cdecl FSkeletalMeshVertexBuffer::AllocateData(void)” (?AllocateData@FSkeletalMeshVertexBuffer@@AEAAXXZ) referenced in function “private: void __cdecl UMergedMeshComponent::NEWGenerateLODModel<struct TGPUSkinVertexFloat16Uvs<1>,struct TSkinWeightInfo<1> >(int)” (??$NEWGenerateLODModel@U?$TGPUSkinVertexFloat16Uvs@$00@@anonymous_user_15ea635e?$TSkinWeightInfo@$00@@@UMergedMeshComponent@@AEAAXH@Z) CleanThirdPerson E:\MyProject\Intermediate\ProjectFiles\MergedMeshComponent.cpp.obj 1
Error LNK2019 unresolved external symbol "public: bool __cdecl FSkeletalMeshResource::RequiresCPUSkinning(enum ERHIFeatureLevel::Type)const " (?RequiresCPUSkinning@FSkeletalMeshResource@@QEBA_NW4Type@ERHIFeatureLevel@@@Z) referenced in function “private: void __cdecl UMergedMeshComponent::NEWGenerateLODModel<struct TGPUSkinVertexFloat16Uvs<1>,struct TSkinWeightInfo<1> >(int)” (??$NEWGenerateLODModel@U?$TGPUSkinVertexFloat16Uvs@$00@@anonymous_user_15ea635e?$TSkinWeightInfo@$00@@@UMergedMeshComponent@@AEAAXH@Z) CleanThirdPerson E:\MyProject\Intermediate\ProjectFiles\MergedMeshComponent.cpp.obj 1
Error LNK2019 unresolved external symbol "public: bool __cdecl FSkeletalMeshResource::HasExtraBoneInfluences(void)const " (?HasExtraBoneInfluences@FSkeletalMeshResource@@QEBA_NXZ) referenced in function “private: void __cdecl UMergedMeshComponent::NEWGenerateLODModel<struct TGPUSkinVertexFloat16Uvs<1>,struct TSkinWeightInfo<1> >(int)” (??$NEWGenerateLODModel@U?$TGPUSkinVertexFloat16Uvs@$00@@anonymous_user_15ea635e?$TSkinWeightInfo@$00@@@UMergedMeshComponent@@AEAAXH@Z) CleanThirdPerson E:\MyProject\Intermediate\ProjectFiles\MergedMeshComponent.cpp.obj 1
This appears to be related to the templates but I’ve found no way to get it to compile. Included all of the headers of every referenced file, have tried to use externs, API calls, defined classes in the .h, friending classes, etc. Being out of ideas I decided to bring it to the AnswerHub and hope that someone has found some similar issues before and knows a way to work around it.