I am new to templates and I have searched the web for this error but I don't know how to fix it it. Already checked Why can templates only be implemented in the header file?
State.h
template <class entityType>
class State
{
public:
    State() = default;
    virtual void Enter(entityType * owner);
};
EnterMine.h
#include "State.h"
class Miner;
class EnterMine : public State<Miner>
{
public:
    EnterMine() = default;
    virtual void Enter(Miner *) {
    };
};
and Miner.cpp is blank
and the problem appears in main.cpp
#include "EnterMine.h"
int main()
{
    EnterMine a;
}
The error I get is a linking error :
LNK2001 unresolved external symbol "public: virtual void __thiscall State::Enter(class Miner *)" (?Enter@?$State@VMiner@@@@UAEXPAVMiner@@@Z)
 
    