2012-07-18 118 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