Ошибка LNK2019 в простом классе, не могу понять, почему [duplicate]

0

У меня есть следующий класс, который не будет компилироваться для проблемы неразрешенного символа LNK2019. Я видел еще один поток, который, похоже, похож на проблему, но я не понимаю, почему моя связь не связана, потому что она намного проще и кажется стандартной. В любом случае, благодарю Вас

// windowLevel.h header file for the class.  Error is related to not resolving the constructor
window level.h:

#ifndef WINDOWLEVEL_H
#define WINDOWLEVEL_H

class windowLevel
{
public:
    windowLevel();
    void setWindow(unsigned int window){m_window = window;} // setters
    void setLevel(unsigned int level){m_level = level;}
    unsigned int window(){return m_window;} // getters
    unsigned int level(){return m_level;}
private:
    unsigned int m_window;
    unsigned int m_level;
    unsigned const int m_level_max = 255;
    unsigned const int m_level_min = 0;
    unsigned const int m_window_max = 255;
    unsigned const int m_window_min = 0;
};

#endif // WINDOWLEVEL_H


// windowlevel.cpp class implementation file
windowlevel.cpp:


#include "windowlevel.h"

windowLevel::windowLevel()
{
}

// main.cpp main function
main.cpp:

#include <QCoreApplication>
#include <iostream>
#include "windowlevel.h"

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    qDebug("Starting window level");

    windowLevel win; // instantiate a windowlevel object

    qDebug("Done!");

    return a.exec();
}
  • 0
    windowlevel.cpp, вероятно, не компилируется или не связывается.
  • 1
    Можете ли вы опубликовать ошибку?
Показать ещё 2 комментария
Теги:
unresolved-external
lnk2019

1 ответ

1

всякий раз, когда вы объявляете методы в своем файле заголовка (.h), но не реализуете их в файле вашего кода (.cpp), вы получаете нерешенные внешние. Это относится к тому, что компилятор видит подпись метода, но не может сопоставлять его с фактическим телом кода.

При обращении к библиотеке объявления в заголовках сопоставляются с вызовами во внешние dll, поэтому термин "внешние" - они не всегда соответствуют вашему собственному коду. Это означает, что вы также можете получить эту ошибку, если вы включили заголовки, но не смогли правильно ссылаться на библиотеки, на которые ссылаются заголовки

Ещё вопросы

Сообщество Overcoder
Наверх
Меню