I am currently trying to implement a class with the Singleton Pattern in C++. But I get following linking error:
projectgen.cpp:(.bss+0x0): multiple definition of `Metadata::metadata'; C:\Users\adria\AppData\Local\Temp\ccdq4ZjN.o:main.cpp:(.bss+0x0): first defined here collect2.exe: error: ld returned 1 exit status
What's the error's cause?
Metadata.h: (Singleton class)
#pragma once
class Metadata
{
public:
    Metadata(Metadata &other) = delete;
    void operator=(const Metadata &other) = delete;
    static Metadata *getInstance()
    {
        return metadata;
    }
    static void createInstance(Ctor ¶ms)
    {
        if (!metadata)
        {
            metadata = new Metadata(params);
        }
    }
protected:
    Metadata(Ctor ¶ms)
    {
        m_vars = params;
    }
    static Metadata *metadata;
private:
    Ctor m_vars;
}
Metadata* Metadata::metadata = nullptr;
main.cpp:
#include "metadata.h"
int main(void)
{
    Ctor ctor;
    Metadata::createInstance(ctor);
    Metadata* data = Metadata::getInstance();
    return 0;
}
projectgen.cpp:
#include "metadata.h"
void ProjectGenerator::test()
{
    Metadata* data = Metadata::getInstance();
}
 
     
    