Qt.pro文件中的条件命令

Qt.pro文件中的条件命令,qt,makefile,Qt,Makefile,我对我的Qt.pro文件有疑问。。。我曾看过另一篇关于类似问题的帖子,但我使用了contains()函数,结果无效 在我的例子中,我有一个名为mainconfig.h的文件,我在其中定义了一些项目配置标志,我真的在那里创建了定义,比如:“#define my_CONFIG_define”。这些标志定义了将显示的菜单选项等。我的问题是:所有文件都会被编译,即使我不使用它,因为我在“mainconfig.h”文件中定义了一些标志。我希望避免编译一些我不会使用的文件,在.pro文件中定义一些变量并执行

我对我的Qt.pro文件有疑问。。。我曾看过另一篇关于类似问题的帖子,但我使用了contains()函数,结果无效

在我的例子中,我有一个名为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?

对不起,我的英语不好,谢谢。

我知道你的语法错了。请尝试以下方法:

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 
}

我知道你的语法错了。请尝试以下方法:

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 
}

谢谢@sgibb,我试过了,而且成功了。。。嗯,至少我的项目已编译,但我的二进制文件在那之前大小相同。谢谢@sgibb,我尝试了这个并工作了。。。好吧,至少我的项目已经编译了,但我的二进制文件在那之前大小是一样的。