我做了一个小的QT应用程序,我试图通过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();
}


在执行qmake -project之后
然后qmake -TestPrg.pro
然后我尝试make,在这里它失败并出现以下错误:

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


如果我们查看makefile.debug的行号58,并在“ <
非常感谢

最佳答案

我刚刚在计算机上做了一个示例工作。代码如下,但是您至少有一些错误,即:


与QApplication相反,您可以使用QMainWindow作为应用程序。那不会编译。
分别,您将需要包括QApplication而不是QMainWindow。
您会在主函数中的第一条语句后错过分号。
您无需在堆上构造QLabel。在这种特定情况下,它可能是一个简单的堆栈对象。
您可以将qmake用作qmake -foo,而不仅仅是qmakemake foo
您试图在Windows命令提示符下使用“ make”,而不是nmakejom。如果使用Visual Studio和MSVC,请不要将其与mingw,cygwin等混合使用。只需使用nmake,否则,可以,对后一个选项使用make。


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();
}


main.pro

TEMPLATE = app
TARGET = main
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
SOURCES += main.cpp


生成并运行

* qmake
* nmake
* main.exe

09-05 05:10