Qtcreator編譯中被忽略的qmake-構建、執行、qmake
引言
在使用Qtcreator 編譯程式碼的時候,我經常用 到清除,重新構建
一直也沒有什麼問題,今天在編譯的時候,總是編譯不過。
只是清除和重新構建。
後來執行qmake 後編譯通過。
下面探究qmake的功能
qmake
首先看看Qt的幫助文件中的描述
- qmake:根據實際環境建立專案檔案.pro 並且執行qmake生成適當的Makefile
qmake可以供任何一個軟體專案使用,而不用管它是不是用Qt寫的,儘管它包含了為支援Qt開發所擁有的額外的特徵。
qmake基於一個專案檔案這樣的資訊來生成makefile。專案檔案可以由開發者生成。專案檔案通常很簡單,但是如果需要它是非常完善的。不用修改專案檔案,qmake也可以為為Microsoft Visual Studio生成專案。
qmake語言
操作符
在許多專案檔案中,賦值符號(=)和追加符號(+=)被用來包含專案中的全部資訊,典型的使用
模式是給一個變數賦一列值,然後根據各種測試追加更多的值,因為qmake使用預設的值定義了
一些變數,所以有時候使用移除符號(-=)剔除一些不需要的值也是必要的。下面幾節描述了
如何使用運算子來操作變數的內容。
分配值
“=“運算子為變數分配一個值:
TARGET = myapp
上面的一行將TARGET的值設定為myapp,myapp會覆蓋TARGET之前的所有值。
追加值
”+=“運算子向變數的值列表中追加一個新值。
DEFINES += USE_MY_STUFF
上述行將USE_MY_STUFF附加到要在生成的Makefile中放置的前處理器定義的列表中。
移除值
”-=“運算子從變數的值列表中刪除一個值
DEFINES -= USE_MY_STUFF
變數擴充套件
$$運算子可以提取一個變數的值,還可以被用來在兩個變數之間傳遞值或者 提供給函式
專案(.pro)檔案
一個專案檔案是用來告訴qmake關於為這個應用程式建立makefile所需要的細節。例如,一個原始檔和標頭檔案的列表、任何應用程式特定配置、例如一個必需要連線的額外庫、或者一個額外的包含路徑,都應該放到專案檔案中。
CONFIG變數
配置變數指定了編譯器所要使用的選項和所需要被連線的庫。配置變數中可以新增任何東西,但只有下面這些選項可以被qmake識別。下面這些選項控制著使用哪些編譯器標誌:
- release - 應用程式將以release模式連編。如果“debug”被指定,它將被忽略。
- debug - 應用程式將以debug模式連編。
- warn_on - 編譯器會輸出儘可能多的警告資訊。如果“warn_off”被指定,它將被忽略。
- warn_off - 編譯器會輸出儘可能少的警告資訊。
qmake
根據實際環境建立專案檔案.pro 並且執行qmake生成適當的Makefile
構建
構建是增量編譯,只編譯有變化部分
重新構建
是把所有部分都重新編譯
執行
有改動則根據已有的Makefile進行編譯,執行構建和重新構建時如果沒有Makefile,會根據.pro檔案等生成Makefile後再編譯
所以執行順序應該是:qmake-構建-執行
雖然還不知道為什麼以前沒有qmake 也可以,但是以後還是按照步驟來吧!!!