我的项目结构如下:
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
我想要实现的是:
通过添加到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(...)
命令做到了这一点。
另一种方法(但更受限制)是在CONFIG+=GLOBAL_VAR
参数列表中使用qmake
。该技术对于“主”开关非常有用。
但是使用它们两者,您都无法在预构建过程(qmake步骤)中更改GLOBAL_VAR
。
关于Qt:将变量传递给子项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6662644/