【问题标题】:Conditional commands in Qt .pro fileQt .pro 文件中的条件命令
【发布时间】:2012-07-18 18:18:00
【问题描述】:

我对我的 Qt .pro 文件有疑问...我看过另一篇关于类似问题 in this link 的帖子,但我使用了 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?

对不起我的英语,谢谢。

【问题讨论】:

    标签: qt makefile


    【解决方案1】:

    恕我直言,您的语法错误。试试这个:

    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,我试过这个并且成功了......好吧,至少我的项目编译了,但我的二进制文件在此之前具有相同的大小。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-09
    • 1970-01-01
    • 2016-11-03
    • 2018-12-01
    • 2021-03-18
    • 2016-10-18
    • 1970-01-01
    相关资源
    最近更新 更多