Неразрешенная ссылка на конструктор, который определен

Я получаю unresolved external symbol "public: __thiscall TestLanguage::TestLanguage(void)" (??0TestLanguage@@QAE@XZ) referenced in function _main

TestLanguage насколько я вижу, конструктор определен, однако, очевидно, компилятор его не видит. Мой единственный вывод заключается в том, что есть какие-то проблемы включения (например, круговые включения).

Я сделал диаграмму включений для каждой единицы перевода ниже, однако я не вижу никаких проблем. Любое руководство будет оценено.

Включает в себя:

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

1 ответ

Решение

После попытки создать MCVE в соответствии с предложением @inetknght (спасибо BTW) я обнаружил, что на самом деле это была ошибка в Visual Studio Express 2013. Я скопировал все свои исходные файлы в новый проект, так что я мог продолжать удалять вещи, чтобы получить Наименьший пример, однако он отлично скомпилирован в новом проекте.

При попытке исправить исходный проект я очистил решение, вручную удалил объектные файлы, удалил файл.sdf в проекте. Ничего из этого не сработало. Затем я попытался удалить файл TestLanguage.cpp из проекта и добавить его обратно - и это сработало.

Надеюсь, это поможет всем, кто испытает это.

Другие вопросы по тегам