0

我是 Qt 新手,在 hello.cpp 中编写一个基本示例:

 #include <QApplication>
#include <QLabel>

int main(int argc, char *argv[]) {
     QApplication app(argc, argv);

     QLabel *label = new QLabel("Hello!World! Orz...");
     label->setWindowTitle("First Qt!");
     label->resize(200, 50);
     label->show();

     return app.exec();
}

然后我做qmake -projectqmakemake

然后./GUI.它就跑了!

我很困惑。为什么 qmake 知道 makehello.cpp 我从来没有告诉过它!

感谢您的任何回答。

4

1 回答 1

1

是的,你确实说过,只是没有你想的那么明确:-)

当您执行时qmake -project(即 projectfile 模式),它会检查您的文件以确定哪个是主要文件,并基于该文件构造一个项目文件。默认情况下,它会查看当前目录中的文件,但您也可以使用-r(recursive search) 和-nopwd(仅使用指定的文件,而不是当前目录中的文件) 标志来控制它。

然后,然后你qmake不带参数运行,它将使用该项目文件中的信息来构造一个 makefile。然后,当然make会使用makefile。

这是在文档中指定的:

qmake 支持两种不同的操作模式。第一种模式,默认是生成文件。在这种模式下,qmake 将获取一个 .pro 文件并将其转换为一个 makefile。本参考指南涵盖了创建 makefile,还有另一种生成 .pro 文件的模式。

要在这些模式之间切换,您必须在第一个参数中指定要使用的模式。如果未指定模式,qmake 将假定您需要 makefile 模式。可用的模式有:

-makefile qmake 输出将是一个makefile(Makefile 模式)。
-project qmake 输出将是一个项目文件(项目文件模式)。

于 2013-08-02T01:25:37.160 回答