2014-07-17 1 views
1

명백한 내용이 누락되었지만 Qt 사용자 인터페이스에서 링크 오류를 제거 할 수 없습니다.QGraphicsView 하위 클래스가있는 생성자의 LNK2019

문제의 원인이되는 부분을 격리했습니다. 기본적으로 대화 형 오버 헤드 맵을 표시하려면 QGraphicsView 하위 클래스를 구현하고 있습니다. 웬일인지, 나는 생성자를 해결할 수 없다.

OverheadMap.h :

#ifndef OVERHEADMAP_H 
#define OVERHEADMAP_H 

#include <QGraphicsView> 

class OverheadMap : public QGraphicsView { 
    Q_OBJECT 

public: 
    OverheadMap(); 
}; 

#endif // OVERHEADMAP_H 

OverheadMap.cpp :

#include "OverheadMap.h" 

OverheadMap::OverheadMap() { 
    // Body 
} 

MAIN.CPP :

#include "OverheadMap.h" 

int main(int argc, char *argv[]) 
{ 
    OverheadMap *map = new OverheadMap(); 
} 

LNK2019 :

main.obj:-1: error: LNK2019: unresolved external symbol "public: __thiscall OverheadMap::OverheadMap(void)" ([email protected]@[email protected]) referenced in function _main 

OverheadMap으로 QtCreator의 자동 완성 기능을 사용할 수 있습니다. QFrame과 유사한 하위 클래스 구현이 가능합니다. 여기서는 구문 오류가 의심됩니다.

무엇이 누락 되었습니까?

감사합니다.

+0

그리고 'OverheadMap.cpp' 파일이 프로젝트에 있고 빌드 중입니까? –

+0

프로젝트에 대한 Qt 생성 파일을 다시 빌드했는지 확인하십시오. 새로운 클래스는 자신의 파일을 가질 때까지 Q_OBJECT와 같은 Qt 구문을 이해하지 못합니다. – Lochemage

+0

'OverheadMap.cpp'는 원본 폴더에 내가 만든 모든 .cpp 파일이며 적어도 10 번 이상 청소/재구성을 시도했습니다. 심지어 QtCreator를 닫거나 다시 열어 보았습니다. –

답변

0

호출해야합니다.

그래서 해결책은 qmake를 다시 실행해야한다는 것입니다. 왜냐하면 사용자의 의견에 따라 qmake로 알려주지 않고 프로젝트 구조를 수정했기 때문입니다.

0

당신은 당신의 기본 클래스의 생성자이 코드는 나를 위해 잘 작동

OverheadMap::OverheadMap() : QGraphicsView() 
{ 
    // Body 
} 
+0

나는 여전히 같은 문제가 있습니다. –

+1

이 답변은 잘못되었습니다. 빈 목록 인 경우에는 필요하지 않습니다. – lpapp