2012-07-18 71 views
0

我對我的Qt .pro文件有懷疑......我曾看過另一篇關於類似問題in this link的帖子,但是我使用了contains()函數並且沒有工作。Qt .pro文件中的條件命令

在我的情況下,我有一個名爲mainconfig.h的文件,我在其中定義了一些項目配置標誌,我真的在那裏創建了定義,如:「#define MY_CONFIG_DEFINE」。這些標誌定義了什麼菜單選項將顯示等。我的問題是:所有文件總是編譯,即使我不使用它,因爲我在「mainconfig.h」文件中定義了一些標誌。我想避免編譯一些文件,而不使用它,在我的.pro文件中定義一些變量並執行條件命令,其中只包括比我想要的文件。

有人可以幫助我嗎?

我在.pro文件中嘗試這樣做:

# This variable defines the current project ADRIANO_PROJECT = PROJECT_TYPE_1 
    ADRIANO_PROJECT = PROJECT_TYPE_1 

    (...) 

    FORMS += ui/form1.ui \ 
    contains(ADRIANO_PROJECT, PROJECT_TYPE_1) { 
      ui/myform1.ui \ 
      ui/myform2.ui \ 
    } 
      ui/form2.ui \ 
      ui/form3.ui 

    (...) 

    # This is only a example, ok? 

對不起我的英語和感謝。

回答

4

恕我直言,你的語法是錯誤的。試試這個:

ADRIANO_PROJECT = PROJECT_TYPE_1 

FORMS += ui/form1.ui \ 
     ui/form2.ui \ 
     ui/form3.ui 

contains(ADRIANO_PROJECT, PROJECT_TYPE_1) { 
     FORMS + = ui/myform1.ui \ 
        ui/myform2.ui 
} 
+0

感謝@sgibb,我想這和工作......好吧,至少我的項目編制,但我的二進制文件具有相同的大小之前。 – 2012-07-19 12:03:59

+0

好,它工作!謝謝,是另一個錯誤... – 2012-07-19 14:36:05