2013-08-02 33 views
0

我是新來的Qt,在HELLO.CPP寫一個基本樣品:爲什麼qmake -project知道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知道make hello.cpp我從來沒有告訴過它!

感謝您的任何答案。

回答

1

是的,你沒告訴它,只是沒有明確你想的:-)

當您執行qmake -project(即project文件模式),它會檢查你的文件,弄清楚這是主要的一個,並基於此構建項目文件。默認情況下它會查看當前目錄中的文件,但您也可以使用-r(遞歸搜索)和-nopwd(僅使用指定文件,而不是當前目錄中的文件)標誌來控制此文件。

然後,你運行qmake沒有參數,它會使用該項目文件中的信息來構建一個makefile。那麼,當然,make將使用makefile。

此文檔中指定:

qmake的支持兩種操作模式不同。第一種模式是默認生成文件。在這種模式下,qmake將獲取一個.pro文件並將其轉換爲一個makefile。本參考指南涵蓋了創建makefile,還有另一種生成.pro文件的模式。

要在這些模式之間切換,您必須在第一個參數中指定要使用的模式。如果沒有指定模式,qmake會假定你想要makefile模式。可用的模式有:

-makefile qmake輸出將是一個makefile(Makefile模式)。
-project qmake輸出將是一個項目文件(項目文件模式)。

相關問題