QT로 모달형식의 다이얼로그를 띄우기 위해 소스를 구현을 하다가
에러에 대해서 이해 한 부분이 있어서 이렇게 글을 쓰게 되었다.
먼저 이 에러가 발생된 이유는 시그널, 슬롯을 사용하면서, Q_OBJCET를 사용하지 않고 빌드를 시킨 뒤에
실행을 시켰지만 출력이 되지 않아 확인하니 Q_OBJECT를 사용하지 않았다는 것을 알게되어
Q_OBJCET를 추가 하였는데, undefined reference to 'vtable for...'가 발생되었다.
이 에러를 보게 되면,
그래서 바로 인터넷 검색을 하였는데,
이 에러는 Q_OBJECT 때문에 발생하는 에러라고 하는데,
시그널, 슬롯을 사용하지 않았으면서 Q_OBJECT를 사용하면 출력되는 에러라고 하였다.
하지만 난 밑의 소스 처럼 시그널, 슬롯을 사용하였다.
/****************************************
helloQT.h
****************************************/
#ifndef HELLOQT_H
#define HELLOQT_H
#include
그래서 뭐가 문제 일까? 라는 생각을 하다가 Q_OBJECT를 추가 하게 되면, moc파일이 생성이 되어야 되는데,
생성은 qmake로 생성을 해 주어야 되는데, qmake를 해 주질 않아서 위에러가 발생했을 수 있다는 생각을 하게 되었다.
그래서,
위그림에 있는 [Build] - [Run qmake]를 실행한뒤 Ctrl+R를 누르니
에러 없이 실행이 되었다.
'QT > Tip / Information' 카테고리의 다른 글
우분투10.04 LTS에 QT4.6.2 phonon 포함 설치 (0) | 2010.05.11 |
---|---|
시그널(signals)과 슬롯(slots) (1) | 2009.04.29 |
위젯(widget) 이란? (0) | 2009.04.29 |