首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >QMake -将变量传递给子项目

QMake -将变量传递给子项目
EN

Stack Overflow用户
提问于 2019-01-07 19:03:31
回答 1查看 653关注 0票数 1

我有一个包含以下项目文件的qmake项目:

代码语言:javascript
运行
复制
. parent1.pro
. parent2.pro  
. child_common.pro

parent1和parent2都是子目录项目,并将child_common作为子目录。

有没有办法让我定义一个可由child_common使用的变量,根据使用该子对象的父对象的不同而具有不同的值?

例如:如果我在编译parent1,child_common应该有一个变量MY_VAR=A,如果我在编译parent2,它应该有MY_VAR=B

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-10 18:44:23

实际上,事情并不是这样的(因为qmake从不允许将其变量传递给SUBDIRS子项目),所以最终您可能会拥有两个独立的child_common实例。但是,如果您的所有项目都属于同一目录子树,则可以通过以下方式使用qmake的缓存文件。

首先,在您的公共根子目录中创建一个空的缓存文件:touch .qmake.cache (或.qmake.stash,或.qmake.super)。然后将以下代码添加到所有“父”项目中:

代码语言:javascript
运行
复制
MY_VAR = A # or B
cache(MY_VAR, set) # or "set stash", or "set super"

现在,只要缓存文件存在于父目录中,MY_VAR就应该在任何子项目中都可见。但请注意,缓存内容的更改并不会自动暗示(子)项目重建。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54073133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档