Как исправить ошибку компоновщика C ++ без объяснения причин - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть проект C ++, который не компилируется, и появляются следующие 2 ошибки:

Ошибка LNK1120 1 неразрешенные внешние данные

Ошибка LNK2019 неразрешенный внешний символ "publi c: виртуальный __cdecl StartWindow :: ~ StartWindow (void) "(?? 1StartWindow @@ UEAA@XZ), указанный в функции" publi c: void __cdecl StartWindow :: `vbase destructor '(void)" (?? _ DStartWindow @@ QEAAXXZ)

StartWindow - это класс, который я определил, но в настоящее время он никогда не создается и не включается нигде в проекте. Удаление класса позволяет проекту компилироваться, но если этот класс находится внутри проекта, он не будет.

Я включу код для класса на случай, если что-то упущено:

. CPP Файл

#include "StartWindow.h"

StartWindow::StartWindow()
{
    setImmediateDrawMode(false);
}

void StartWindow::onDraw()
{
    clearScreen(WHITE);

    EasyGraphics::onDraw();
}

Файл заголовка:

#pragma once

#include "EasyGraphics.h"

class StartWindow : public EasyGraphics
{
public:
    StartWindow();
    ~StartWindow();

private:
    virtual void onDraw();
};

Спасибо.

1 Ответ

2 голосов
/ 25 апреля 2020

Вам не хватает реализации деструктора для StartWindow. В вашем файле реализации (. cpp file) добавьте:

StartWindow::~StartWindow(){
    //if your destructor is non-trivial, include definition here
}

...