web-dev-qa-db-fra.com

Qt 5.3. QtWidgets: Aucun fichier ou répertoire de ce type #include <QtWidgets>

Je veux compiler l'exemple Qt. Je reçois l'erreur QtWidgets: Aucun fichier ou répertoire de ce type #include 

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets - does not help
QT += widgets                                   - does not help
INCLUDEPATH += /opt/Qt/5.3/Src/qtbase/include/  - does not help

Qt 5.3. Ubuntu 14.04 x64.

6
Ufx

Vous devez vérifier que vous avez terminé toutes ces étapes:

  • Module installé

  • superiorThan (QT_MAJOR_VERSION, 4): QT + = widgets

  • Vous relancez le Qt 5 qmake.

Cela dit, j'aimerais vous rappeler que l'inclusion de tout le module n'est pas une bonne idée car elle inclut tous les éléments liés aux widgets. Essayez de le réduire aux en-têtes dont vous avez réellement besoin.

7
lpapp

Comme vous l'avez remarqué, la structure des répertoires Qt a changé entre Qt4 et Qt5. En-tête QWidget déplacé vers un répertoire QtWidgets. Essayez d'ajouter

INCLUDEPATH += /opt/Qt/5.3/Src/qtbase/include/QtWidgets

Si cela ne vous aide pas, essayez de trouver l’en-tête manuellement en utilisant

find /opt/Qt/5.3/Src/qtbase/ -name QWidget

et et le répertoire est dans INCLUDEPATH

Modifier basé sur les commentaires du concours final.

Je conviens que les solutions de contournement sont généralement une mauvaise idée. Pour tester où QT votre installation recherche les en-têtes et les bibliothèques qt5. Créez un projet minimal.

#include <QApplication>
#include <QtWidgets>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QWidget w;
    w.show();
    app.exec();
}

Générer un projet et ajouter QT + = widget

/opt/Qt/5.3/Src/qtbase/bin/qmake -project

Dossier de projet

######################################################################
# Automatically generated by qmake (3.0) Thu Jul 10 13:05:17 2014
######################################################################

TEMPLATE = app
TARGET = so_qtwidgets
INCLUDEPATH += .

QT += widgets

# Input
SOURCES += main.cpp

Générer un fichier make

/opt/Qt/5.3/Src/qtbase/bin/qmake

L'indicateur de widget de pièces intéressantes ajoute:

  • Dans mon cas -I/usr/include/qt5/QtWidgets -I/usr/include/qt5/QtGui to INCPATH
  • -DQT_WIDGETS_LIB à la variable DEFINES.
  • -lQt5Widgets -lQt5Gui aux libs.

La seule partie qui devrait différer concerne les chemins d'accès à QtWidgets et QtGui. Si cela ne va pas, j'essayerais de réinstaller Qt.

6
Tobias

Tout cela ressemble beaucoup à l'inverse et j'ai eu le même problème temporairement avec 5.6 mais la réponse pourrait être beaucoup plus simple.

Si vous chargez beaucoup d'exemples, vous pouvez arriver en premier à l'éditeur ou à ce que vous étiez enfin. Si l'exemple a été chargé pour la première fois, il devra être "configuré", sous l'onglet latéral des projets, qui devrait vous présenter "Configurer" plutôt que "Construire et exécuter". Qu'il ne saute pas toujours directement, il y a une faille, mais il en va de même pour l'inclusion d'exemples sans support par défaut (Desktop OpenGL et iOS pour deux).

En attendant, cela ne résoudra aucune dépendance en dehors du projet immédiat car les bibliothèques utilisées dépendent du compilateur/cible utilisé (par exemple, MSVS, GNUCC, MinGW, 32/64 bits).

0
user4503219