2014-10-27 5 views
0

У меня есть следующий класс, который не будет компилироваться для нерешенной проблемы с символом LNK2019. Я видел еще один поток, который, похоже, похож на проблему, но я не понимаю, почему моя связь не связана, потому что она намного проще и кажется стандартной. Во всяком случае ... СпасибоОшибка 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

Можете ли вы отправить сообщение об ошибке? –

+0

'window level.h' пространство в имени файла заголовка? –

ответ

1

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^