I ran into this error today when trying to refactor some code. Confused initially as LNK2019 means a function definition cannot be found. However the functions were defined in the derived classes so why the error?
The problem stemmed from the fact that my base class called the virtual functions in the constructor and destructor. Apparently the vtables aren’t available at this point for a class and so the compiler cannot resolve the call for a particular function. Hence the error.
The solution of course is to not call virtual functions from the constructor or destructor.