Ejecutar una aplicación QT desde el símbolo del sistema en Windows
-
21-12-2019 - |
Pregunta
He creado una pequeña aplicación QT y estoy intentando ejecutarla a través del símbolo del sistema en Windows:
#include <QMainWindow>
#include <QLabel>
int main(int argc,char* argv[])
{
QMainWindow a(argc,argv)
QLabel *NewLabel = new QLabel("Hi i am a label");
NewLabel->show();
return a.exec();
}
Después de hacer qmake -project
y luego qmake -TestPrg.pro
entonces lo intento make
, aquí falla con el siguiente error:
D:\TestPrg>make
make -f Makefile.Debug
make[1]: Entering directory `D:/TestPrg'
Makefile.Debug:58: *** missing separator. Stop.
make[1]: Leaving directory `D:/TestPrg'
make: *** [debug] Error 2
si miramos makefile.debug
, línea número 58 y agregue una TAB antes de "<<", se queja en otro número de línea. Entonces siento que hay algo mal en las opciones del compilador, ¿alguien puede guiarme sobre cómo hacerlo funcionar?
Muchas gracias
Solución
Acabo de hacer que un ejemplo funcione en mi máquina.El código se muestra a continuación, pero tiene al menos algunos errores, a saber:
Utiliza QMainWindow para ser la aplicación tal como parece, a diferencia de QApplication.Eso no se va a compilar.
Respectivamente, deberá incluir QApplication en lugar de QMainWindow.
Se omite un punto y coma después de la primera declaración en la función principal.
construyes un
QLabel
en el montón innecesariamente.En este escenario particular, podría ser un simple objeto de pila.Usas invocar qmake como
qmake -foo
en lugar de soloqmake
omake foo
.Está intentando utilizar "make" en el símbolo del sistema de Windows en lugar de
nmake
ojom
.Si usa Visual Studio y MSVC, no los mezcle con mingw, cygwin y otras cosas.Simplemente use nmake; de lo contrario, sí, use make para las últimas opciones.
principal.cpp
#include <QApplication>
#include <QLabel>
int main(int argc, char **argv)
{
QApplication a(argc, argv);
QLabel NewLabel("Hi i am a label");
NewLabel.show();
return a.exec();
}
principal.pro
TEMPLATE = app
TARGET = main
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
SOURCES += main.cpp
Construir y ejecutar
* qmake
* nmake
* main.exe