Hello everyone,
I’m trying to make a generic templated category for the gameplay debugger. I’m currently following this tutorial:
But I’m currently having compile error with it which is:
error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl FGameplayDebuggerCategory::FGameplayDebuggerCategory(void)" (__imp_??0FGameplayDebuggerCategory@@QEAA@XZ) referenced in function "public: static class TSharedRef<class FGameplayDebuggerCategory,0> __cdecl FGameplayDebuggerCategoryT<class USoldierStateComponent>::MakeInstance(void)" (?MakeInstance@?$FGameplayDebuggerCategoryT@VUSoldierStateComponent@@@@SA?AV?$TSharedRef@VFGameplayDebuggerCategory@@$0A@@@XZ)
2>dbsbuild : error : aborting build on error (1120)
But I don’t really understood what’s happening here. I put every function def in the .h file to make sure to avoid unresolved symbol but I still get this one no matter what.
The specialized version of the template is declared here:
UMyGameInstance::UMyGameInstance(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
FGameplayDebuggerCategoryT<USoldierStateComponent>::Register(TEXT("Soldier State"), 6);
}
And it seems the problems is coming from either this line in Register function:
auto creationDelegate = IGameplayDebugger::FOnGetCategory::CreateStatic(&FGameplayDebuggerCategoryT<T>::MakeInstance);
or this:
template<typename T>
inline TSharedRef<FGameplayDebuggerCategory> FGameplayDebuggerCategoryT<T>::MakeInstance()
{
return MakeShareable(new FGameplayDebuggerCategoryT<T>());
}
But I’m not sure to understand why. Does anyone tryied to reuse to implementation from this tutorial?
Thanks a lot