Referência não resolvida para o construtor definido [duplicado]

Esta pergunta já tem uma resposta aqui:

O que é um erro de símbolo externo não definido / referência não definido e como corrigi-lo? 32 respostas

Estou recebendo umunresolved external symbol "public: __thiscall TestLanguage::TestLanguage(void)" (??0TestLanguage@@QAE@XZ) referenced in function _main

oTestLanguage construtor é definido até onde eu posso ver, no entanto, obviamente, o compilador não pode vê-lo. Minha única conclusão é que há algum tipo de problema de inclusão (por exemplo, circular inclui).

Fiz um diagrama das inclusões para cada unidade de tradução abaixo, mas não vejo nenhum problema. Qualquer orientação seria apreciada.

Inclui:

Test.cpp
    Expression.h
        Operation.h
        Token.h
    CPU.h
        Operation.h
    TestLanguage.h
        ILanguage.h
        TLOperators.h
            IOperator.h
                Operation.h
                Token.h

TestLanguage.cpp
    TestLanguage.h
        ILanguage.h
        TLOperators.h
            IOperator.h
                Operation.h
                Token.h

TLOperators.cpp
    TLOperators.h
        IOperator.h
            Operation.h
            Token.h
    Expression.h
        Operation.h
        Token.h
    CPU.h
        Operation.h

CPU.cpp
    CPU.h
        Operation.h
    Operation.h

Expression.cpp
    Expression.h
        Operation.h
        Token.h
    Util.h
    IOperator.h
        Operation.h
        Token.h
    CPU.h
        Operation.h
    ILanguage.h

Operation.cpp
    Operation.h

Token.cpp
    Token.h