为什么qmake -project知道hello.cpp有主要功能?

时间:2013-08-02 01:17:29

标签: c++ qt

我是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 -projectqmake以及make

然后./GUI。它刚跑!

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

感谢您的回答。

1 个答案:

答案 0 :(得分:1)

是的,你做了告诉它,并没有像你想象的那样明确: - )

当您执行qmake -project(即项目文件模式)时,它会检查您的文件以确定哪个是主文件,并根据该文件构建项目文件。默认情况下,它会查看当前目录中的文件,但您也可以使用-r(递归搜索)和-nopwd(仅使用指定文件,而不是当前目录中的文件)标记来控制此文件。 / p>

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

这在文档中指定:

  

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

     

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

     

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