Qt로 C++ 프로그램 작성 도중 컴파일 에러입니다...
글쓴이: 나그네나그네 / 작성시간: 목, 2008/08/21 - 10:47오후
#ifndef INFRVIEWER_H_ #define INFRVIEWER_H_ #include"infrcanvas.h" #include<QtGui/QWidget> #include<QtGui/QPushButton> class InfrViewer : public QWidget{ Q_OBJECT public : InfrViewer(QWidget *parent = 0); private : InfrCanvas *infrCanvas; QPushButton *drawButton; public slots : void slot_refresh(); }; #endif /*INFRVIEWER_H_*/
Fedoran Qt 4.3에서 Eclipse CDT로 위와 같은 코드를 작성한 후, g++을 사용해서 컴파일했으나, 이와 같은 컴파일 에러가 떴습니다 :
- more undefined references to `vtable for InfrViewer' follow
- undefined reference to to `vtable for InfrViewer'
각각의 에러가 무엇을 뜻하는 것인지요? 글구 어떻게 해결해야 함니까?
Forums:
Q_OBJECT 매크로를
Q_OBJECT 매크로를 선언했을 경우, moc 전처리기를 돌려서 moc파일을 생성해주고, moc파일도 함께 컴파일해주어야 합니다.
이런 과정은 굉장히 번거로울수 있기 때문에, qmake를 이용해서 처리합니다.
혹시 이미 qmake를 이용하고 있는데 저런 에러가 나온 경우라면, 그냥 간단히 한번더 qmake를 돌려주면됩니다.
Q_OBJECT 매크로가 추가된 후에는 Makefile에서 moc에 돌릴 파일 목록을 갱신해줘야하기 때문에 qmake를 다시 한번 돌려주어야 합니다.
댓글 달기