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 -projecty luego qmake -TestPrg.proentonces 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

¿Fue útil?

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 solo qmake o make foo.

  • Está intentando utilizar "make" en el símbolo del sistema de Windows en lugar de nmake o jom.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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top