Question

J'ai fait une petite application QT et je suis en train de l'exécuter thru invite de commande sous 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();
}

après avoir fait qmake -project et puis qmake -TestPrg.pro puis-je l'essayer makeici il échoue avec l'erreur suivante:

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 l'on regarde makefile.debug ,numéro de la ligne 58 et ajouter un ONGLET avant "<<"il se plaint à someother numéro de ligne.Donc, je sens qu'il ya quelque chose de mal dans les options du compilateur ,quelqu'un peut-il savoir comment le faire fonctionner.

Merci beaucoup

Était-ce utile?

La solution

J'ai juste fait un exemple de travail sur ma machine.Le code ci-dessous va, mais vous avez au moins quelques erreurs, à savoir:

  • Vous utilisez QMainWindow pour être l'application qu'il semble, par opposition à QApplication.Qui ne va pas à compiler.

  • Respectivement, vous devez inclure la QApplication plutôt que de QMainWindow.

  • Vous oubliez un point-virgule après la première instruction de la fonction principale.

  • Vous construisez un QLabel sur le segment de mémoire inutilement.Dans ce scénario particulier, il pourrait être une simple pile de objet.

  • Vous utilisez invoquant que qmake qmake -foo plutôt que de simplement qmake ou make foo.

  • Vous essayez d'utiliser "faire" dans l'invite de Commande Windows, par opposition à nmake ou jom.Si vous utilisez Visual Studio et MSVC, ne les mélangez pas avec mingw, cygwin, et d'autres choses.Utilisez simplement nmake, sinon, oui, utiliser le prendre pour le dernier des options.

main.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

Construire et Exécuter

* qmake
* nmake
* main.exe
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top