1. 程式人生 > >Qt學習(四)條件編譯

Qt學習(四)條件編譯

一.條件編譯含義:

有時候出於對程式程式碼優化的考慮.希望只對其中一部分內容進行編譯.此時就需要在程式中加上條件,讓編譯器只對滿足條件的程式碼進行編譯,將不滿足條件的程式碼捨棄,這就是條件編譯。(名詞解釋來源於百度百科)

二.在Qt中的應用:

通常用於跨平臺程式中。

三.條件編譯如何在qt中實現:

直接舉例進行直觀的理解。

例1:

1.在.main檔案中加入以下程式碼

#ifdef znw
    qDebug()<<"zangniwer";
#else
    qDebug()<<"not define zangniwer";
#endif

編譯執行看到效果如下,說明沒有滿足編譯條件

2.接下來修改程式碼。

(1)在.pro檔案中新增如下程式碼

DEFINES += znw

接下來點選Qt Creator中的“構建”->“執行qmake”->“重新構建專案”

執行完上述操作後,編譯執行可看到結果如下。 

(2)若在.main上面進行預定義,會產生同樣的效果。

#define znw

但是pro檔案裡面定義可以完成一些更高階的事情。比如不同的工程檔案包含不同的.pri檔案,不同的.pri檔案裡面定義不同的條件,可以在編譯的時候根據不同的條件對同一段程式碼編譯出來不同的效果。

例2:

Qt中有很多已經為我們定義好的巨集,可以直接用。

1.在main.cpp檔案中新增如下程式碼

#ifdef QT_NO_DEBUG
    qDebug()<<"i am release";
#else
    qDebug()<<"i am debug";
#endif

編譯執行後可以看到結果為: 

2.編譯release版本

可以看到編譯結果為:

四.總結:

通過條件編譯,可以控制程式編譯產生不同的結果,使得程式碼的複用性得到提高。