본문 바로가기
C++ 200제/코딩 IT 정보

Qt QMainWindow: No such file or directory

by vicddory 2017. 7. 26.

Qt 에러 - FATAL ERROR : QMainWindow: No such file or directory


Qt에서 GUI 프로그램을 제작할 땐, 항상 QMainWindow 클래스를 상속받는 과정이 필요합니다. 만약 아래처럼, QMainWindow 클래스를 참조하지 못할 경우 .pro 파일을 반드시 살펴봐야 하죠.


이건 Qt의 장점이자 단점이기도 한데, .pro 파일에 사용할 라이브러리를 기록해 두면 가독성이 높아지는 장점이 있습니다. 그렇지만 이곳에 라이브러리를 기입하지 않으면 아예 사용하질 못합니다. 대게 QMainWindow를 사용하지 못하는 경우도 이런 상황과 같아요.


일단, 에러 메시지부터 보시죠.


In file included from /home/ubuntu/pcl/example/qt_visualizer/main.cpp:1:0:

/home/ubuntu/pcl/example/qt_visualizer/pclviewer.h:7:23: 

fatal error: QMainWindow: No such file or directory

#include <QMainWindow>


QtCreator의 Output 창에서 확인하면 아래처럼 새빨갛게 뜨니 보기도 좋습니다(?).


fatal error QMainWindow No such file or directory[Qt QMainWindow: No such file or directory]


제 경험 상, 이런 에러는 Qt5 미만의 버전을 사용하거나, qmake를 사용하지 않는 경우에 발생하는 것 같아요. QtCreator는 이런 상황에 대비해 아래와 같은 코드를 자동으로 삽입합니다.


1
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
cs


QMainWindow 클래스를 자동으로 추가해 주는 코드입니다.


QMainWindow를 사용하지 못하는 경우엔 위와 같은 자동 생성 코드를 다시 확인해 보세요. 대부분의 경우, 위의 코드가 빠져있을 겁니다.


Qt QMainWindow[Qt QMainWindow: No such file or directory]


문제는, 위의 코드가 있어도 사용하지 못하는 경우입니다. 아마도 라이브러리를 직접적으로 불러오지 못해 발생하는 상황으로 보이는데, 이럴 경우엔 찝찝하지만 돌아가는 방법을 사용해야죠.


1
2
3
<QtGui/QMainWindow>
또는
<QtWidgets/QMainWindow>
cs


QMainWindow 앞에 QtGui나 QtWidgets를 넣어 해당 경로의 QMainWindow를 직접 부르면 됩니다.


Qt QMainWindow No such file or directory[Qt QMainWindow: No such file or directory]


이것으로도 해결이 안 된다면 Qt를 다시 설치하세요.


Qt QMainWindow: No such file or directory

댓글