我的项目结构如下:
Proj
Proj.pro
--subProj
--subProj.pro
----subsubProj
----subsubProj.pro
有没有办法可以在subProj.pro中实例化一个全局变量并将其调用为例如subsubProj.pro喜欢:
Proj.pro:
GLOBAL_VAR = true
subsubProj.pro:
message($$GLOBAL_VAR)
也许我应该更准确地解决我的问题。
当您右键单击Proj并选择“Build project”Proj“”时Qt Creator中的常见行为是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
}
答案 0 :(得分:4)
我设法通过配置文件使用include(...)
命令执行此操作。
另一种方式(但更有限)是在CONFIG+=GLOBAL_VAR
参数列表中使用qmake
。这种技术对于“主”开关非常有用。
但是在这两个版本中,你无法在预构建过程中更改GLOBAL_VAR
(qmake步骤)......