Qt:将变量传递给子项目

我的项目结构如下:

Proj
Proj.pro
--subProj
--subProj.pro
----subsubProj
----subsubProj.pro

有没有办法我可以在subProj.pro中实例化全局变量并将其称为subsubProj.pro如:

Proj.pro:

GLOBAL_VAR = true

subsubProj.pro:

message($$GLOBAL_VAR)

更新

也许我应该更精确地解决我的问题。

在Qt Creator中,右键单击Proj并选择“Build project”Proj“”时,通常会调用qmake Proj.pro,然后调用qmake subProj.pro,然后使用subsubProj.pro

我想要达到的是:

  • 当我构建项目“Proj”时,只调用Proj.pro和subProj.pro(而不是subsubProj.pro)
  • 但是:当我建立项目“subProj”时,被调用的文件是subProj.pro和subsubProj.pro
  • 您通过添加到subProj.pro实现1):

    TEMPLATE = subdirs
    dont_invoke_subsub{
    SUBDIRS = subsubProj
    }
    

    在这种情况下,当你做qmake Proj.pro 1)就完成了。 但是当你做qmake subProj.pro时subsubProj不会建立。

    所以我的想法是将一个变量从Proj移交给subProj。

    Proj.pro:
    
    GLOBAL_VAR = true;
    

    subProj检索这个变量:

    subProj.pro
    
    TEMPLATE = subdirs
    equals(GLOBAL_VAR, true){
       # do nothing because Proj.pro invokes you
    }
    else {
       # invoke qmake subsubProj.pro
       SUBDIRS = subsubProj
    }
    

    我设法用include(...)命令通过配置文件来做到这一点。

    另一种方式(但更有限)是在qmake参数列表中使用CONFIG+=GLOBAL_VAR 。 这种技术对'主'开关非常有用。

    但是他们两个都不能在预生成过程中更改GLOBAL_VAR (qmake步骤)...

    链接地址: http://www.djcxy.com/p/53605.html

    上一篇: Qt: passing variables to subprojects

    下一篇: Location of template rendering in Symfony2