Je suis conscient qu'il y a quelques questions posées en ligne sur des questions similaires mais malheureusement aucune d'entre elles m'a aidé à résoudre ce problème relativement simple, comme le suggère le titre.qmake n'invoque pas uic
Je mis en place un projet Qt minimal dans lequel le problème se produit:
├── main.cpp
├── mainwindow.ui
└── qt.pro
main.cpp:
#include <QtWidgets/QtWidgets>
#include "ui_mainwindow.h"
int main() {
return 0;
}
qt.pro:
TEMPLATE = app
TARGET = qt-qmake-uic-problem
INCLUDEPATH += .
# Input
FORMS += mainwindow.ui
SOURCES += main.cpp
Le fichier mainwindow. L'interface utilisateur est le formulaire MainWindow par défaut fourni par Qt Creator.
Maintenant, si je lance
qmake qt.pro
alors un Makefile est créé provoquant cette erreur lorsque make est exécuté:
[[email protected] qt-qmake-uic-problem]$ make
g++ -c -pipe -O2 -march=i686 -mtune=generic -O2 -pipe -fstack-protector-strong -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I. -I. -isystem /usr/include/qt -isystem /usr/include/qt/QtGui -isystem /usr/include/qt/QtCore -I. -I/usr/lib/qt/mkspecs/linux-g++ -o main.o main.cpp
main.cpp:2:28: fatal error: ui_mainwindow.ui: No such file or directory
#include "ui_mainwindow.h"
^
compilation terminated.
make: *** [Makefile:298: main.o] Error 1
Selon ma connaissance ui_mainwindow.h doivent être générés soit par qmake ou par le Makefile - pas par moi-même invoquant uic manuellement. Je dois noter que quelque chose de similaire se produit aussi avec moc et faisant mes recherches. Je n'ai pas trouvé d'explication ni dans la documentation ni dans des problèmes similaires, bien qu'il serait étrange que cette installation de qmake soit cassée - Je cours Arch Linux et obtenu Qt SDK à partir du référentiel par défaut.
Merci beaucoup pour votre aide dans les conseils!
Essayez d'inclure 'mainwindow.ui' au lieu de' ui_mainwindow.ui' – wasthishelpful
Merci pour votre réponse rapide! Malheureusement, cela n'a pas fonctionné et les résultats sont les mêmes. Aucun fichier n'a été généré et g ++ a lancé une erreur "no such file or directory". –
@wasthishelpful, c'est * 'ui_mainwindow.h' *. Il est illogique d'inclure le fichier xml 'mainwindow.ui' dans le fichier cpp' main.cpp' – Mike