unresolved external link in .GetWidgetStyle

I’m trying to replicate the Slate structure of the StrategyGame example project.

This line is throwing things off ( MainMenuWidget.cpp )

 menuStyle = &FManipulatorsStyle::Get().GetWidgetStyle<FMainMenuStyle>("DefaultMainMenuStyle");

OUTPUT

1>MainMenuWidget.cpp.obj : error
LNK2019: unresolved external symbol
“public: static struct FMainMenuStyle
const & __cdecl
FMainMenuStyle::GetDefault(void)”
(?GetDefault@FMainMenuStyle@@SAAEBU1@XZ)
referenced in function "public: struct
FMainMenuStyle const & __cdecl
ISlateStyle::GetWidgetStyle FMainMenuStyle>(class FName,char const
*)const " (??$GetWidgetStyle@UFMainMenuStyle@@@ISlateStyle@@QEBAAEBUFMainMenuStyle@@VFName@@PEBD@Z)

ManipulatorsStyle.h

class FManipulatorsStyle
{
public:

static void Initialize();
static void Shutdown();
static void ReloadTextures();
static const ISlateStyle& Get();
static FName GetStyleSetName();	

private:

static TSharedRef <class FSlateStyleSet> Create();
static TSharedPtr <class FSlateStyleSet> ManipulatorsStyleInstance;

};

ManipulatorsStyle.cpp

TSharedRef <FSlateStyleSet> FManipulatorsStyle::Create()
{
	TSharedRef <FSlateStyleSet> styleRef = FSlateGameResources::New(FManipulatorsStyle::GetStyleSetName(), "/Game/UI/Styles", "Game/UI/Styles");
	FSlateStyleSet& style = styleRef.Get();

	style.Set("Manipulators.MenuTitleFont", FSlateFontInfo(FPaths::GameContentDir() / "Fonts/Montserrat-Hairline.ttf", 60));
	style.Set("Manipulators.MenuSubTitleFont", FSlateFontInfo(FPaths::GameContentDir() / "Fonts/Montserrat-Hairline.ttf", 42));
	style.Set("Manipulators.MenuExitFont", FSlateFontInfo(FPaths::GameContentDir() / "Fonts/Montserrat-Hairline.ttf", 35));

	return styleRef;
}

void FManipulatorsStyle::ReloadTextures()
{
	FSlateApplication::Get().GetRenderer()->ReloadTextureResources();
}

const ISlateStyle& FManipulatorsStyle::Get()
{
	return *ManipulatorsStyleInstance;
}

MainMenuWidget.h

USTRUCT()
struct FMainMenuStyle : public FSlateWidgetStyle
{
	GENERATED_USTRUCT_BODY()
	

	FMainMenuStyle();
	virtual ~FMainMenuStyle();
	virtual void GetResources(TArray <const FSlateBrush*> &outBrushes) const override;
	virtual const FName GetTypeName() const override { return TypeName; };
	static const FMainMenuStyle& GetDefault();
	
	static const FName TypeName;

	UPROPERTY(EditAnywhere, Category = Appearance)
		FSlateBrush backgroundBrush;	
	FMainMenuStyle& SetBackgroundBrush(const FSlateBrush& inBackgroundbrush);
	
};

UCLASS(hidecategories=Object, MinimalAPI)
class UMainMenuWidgetStyle : public USlateWidgetStyleContainerBase
{
	GENERATED_UCLASS_BODY()
public:
	UPROPERTY(Category = Appearance, EditAnywhere, meta = (ShowOnlyInnerProperties))
		FMainMenuStyle menuStyle;
	virtual const struct FSlateWidgetStyle* const GetStyle() const override
	{
		return static_cast <const struct FSlateWidgetStyle*> ( &menuStyle);
	}
};

Forgot to add the class Scope in the function definition

const FMainMenuStyle& FMainMenuStyle::GetDefault()
{
static FMainMenuStyle default;
return default;
}