C++ / compilation of a program fatal error: QtGui/qwidget.h: No such file or directory

10,999

The problem is in INCLUDE_DIRECTORIES. I think that in your example QT_QTGUI_INCLUDE_DIR variable has value /usr/include/qt4/QtGui, but you need add /usr/include/qt4 to INCLUDE_DIRECTORIES, because in code include statement useses path <QtGui/qwidget.h>:

INCLUDE_DIRECTORIES("/usr/include/qt4")
Share:
10,999
lilouch
Author by

lilouch

Updated on June 04, 2022

Comments

  • lilouch
    lilouch almost 2 years

    I've downloaded a linux application which required qt4. I have it already on my computer.

    I have this following error when I want to compile the program using make in the terminal.

    [  6%] Building CXX object CMakeFiles/util_convert.dir/moc_planeviewer.cxx.o
    In file included from /usr/include/qt4/QtGui/QMainWindow:1:0,
                 from /home/Desktop/plane/src/planeviewer.h:3,
                 from /home/Desktop/plane/src/moc_planeviewer.cxx:9:
    /usr/include/qt4/QtGui/qmainwindow.h:45:27: fatal error: QtGui/qwidget.h: No such file or directory
     #include <QtGui/qwidget.h>
                               ^
    compilation terminated.
    make[2]: *** [CMakeFiles/util_convert.dir/moc_planviewer.cxx.o] Error 1
    make[1]: *** [CMakeFiles/util_convert.dir/all] Error 2
    make: *** [all] Error 2
    

    I don't understand because I checked already everything. I have the following input for those different commands line:

    qmake --version

    QMake version 2.01a
    Using Qt version 4.8.6 in /usr/lib/x86_64-linux-gnu
    

    locate qwidget.h

    /opt/qt/5.4/android_armv7/include/QtWidgets/qwidget.h
    /opt/qt/5.4/gcc_64/include/QtWidgets/qwidget.h
    /usr/include/qt4/Qt/qwidget.h
    /usr/include/qt4/QtGui/qwidget.h
    

    So the file already exists.

    The CmakeList in case

    find_package(Boost 1.58 REQUIRED COMPONENTS serialization program_options python)
    find_package(PythonLibs 2.6 REQUIRED)
    
    set(QT_USE_QTSVG TRUE)
    set(QT_USE_QTXML TRUE)
    set(QT_USE_QTOPENGL TRUE)
    find_package(OpenGL)
    find_package( Qt4 REQUIRED )
    
    INCLUDE_DIRECTORIES("${Boost_INCLUDE_DIRS}")
    INCLUDE_DIRECTORIES("${PYTHON_INCLUDE_PATH}")
    INCLUDE_DIRECTORIES(${QT_QTCORE_INCLUDE_DIR} ${QT_QTGUI_INCLUDE_DIR} ${QT_QTSVG_INCLUDE_DIR}
                        ${QT_QTXML_INCLUDE_DIR} ${QT_QTOPENGL_INCLUDE_DIR} ${OPENGL_INCLUDE_DIRS})
    
    QT4_WRAP_UI(util_convert_FORMS planeviewer.ui)
    QT4_WRAP_CPP(util_convert_MOCS planeviewer.h planewidget.h)
    ADD_EXECUTABLE(util_convert ${util_convert_FORMS} ${util_convert_MOCS} plane.cpp util_convert.cpp planeviewer.cpp planewidget.cpp objects.cpp coordinates.cpp utils.cpp)
    TARGET_LINK_LIBRARIES(util_convert ${Boost_LIBRARIES} ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} ${QT_QTSVG_LIBRARY}
                                      ${QT_QTXML_LIBRARY} ${QT_QTOPENGL_LIBRARY} ${OPENGL_LIBRARIES})
    

    How I compile:

    Go to src/ then do cmake . and finally make. The error happened at the make step.

    Before posting this, I already searched on the internet but didn't find a solution yet.

    Can someone helps me ?