Qt:将变量传递给子项目
我的项目结构如下:Qt:将变量传递给子项目,qt,parameter-passing,qt-creator,qmake,Qt,Parameter Passing,Qt Creator,Qmake,我的项目结构如下: Proj Proj.pro --subProj --subProj.pro ----subsubProj ----subsubProj.pro 是否有一种方法可以在subsubj.pro中引用全局变量并将其称为en,例如subsubProj.pro,类似于: Proj.pro: GLOBAL_VAR = true subsubProj.pro: message($$GLOBAL_VAR) TEMPLATE = subdirs dont_invoke_subsub{ SU
Proj
Proj.pro
--subProj
--subProj.pro
----subsubProj
----subsubProj.pro
是否有一种方法可以在subsubj.pro中引用全局变量并将其称为en,例如subsubProj.pro,类似于:
Proj.pro:
GLOBAL_VAR = true
subsubProj.pro:
message($$GLOBAL_VAR)
TEMPLATE = subdirs
dont_invoke_subsub{
SUBDIRS = subsubProj
}
更新
也许我应该更准确地处理我的问题
当您右键单击Proj并选择“Build project“Proj”时,Qt Creator中的常见行为是先调用qmake Proj.pro,然后调用qmake subProj.pro,然后再调用subsubProj.pro
我想要实现的是:
message($$GLOBAL_VAR)
TEMPLATE = subdirs
dont_invoke_subsub{
SUBDIRS = subsubProj
}
在这种情况下,当您执行qmake Proj.pro 1)时,已完成。
但是当你做qmake subProj.pro时,subsubProj也不会被构建
所以我的想法是把一个变量从Proj交给subj
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\u VAR
。这种技术对于“主”切换非常有用
但是在预构建过程(qmake步骤)中,使用这两种方法,您无法更改
全局变量 .pri
文件正是为此目的而设计的。你能举个例子吗?