Qmake 5.3:定义全局变量

Posted

技术标签:

【中文标题】Qmake 5.3:定义全局变量【英文标题】:Qmake 5.3: define global variable 【发布时间】:2014-11-15 16:01:48 【问题描述】:

对于 Qmake 4,我基本上遵循 this guide 为所有包含的项目文件全局定义了一些 top_srcdir 变量。

现在,我想让我的 Qmake 文件也兼容 Qmake 5。它还没有真正起作用。该指南还告诉我创建一个文件.qmake.conf,内容如下:

top_srcdir=$$PWD
top_builddir=$$shadowed($$PWD)

但它似乎只是忽略了该文件。 (通过 Qt Creator,作为阴影构建,如果重要的话。)

如果我在根项目文件中指定相同,它不会导出到任何其他项目。

那么,我怎样才能导出变量以使其在所有子项目中都可用?或者如何为所有项目全局声明它?

【问题讨论】:

【参考方案1】:

Qt 4 和 Qt 5 之间存在根本差异,不允许您这样做。

在您的情况下,最好的解决方案是使用.pri 文件和子目录的.pro 文件中的include()

并且:在 Qt 5 中,您应该在 .qmake.conf 中使用 top_builddir=$$shadowed($$PWD),而不是您输入的内容。在 Qt 4 中,您应该在构建目录中放置一个名为 .qmake.cache 的文件,这有点复杂。

【讨论】:

好像有什么区别?我现在正在检查 Qmake 5 like here,而我的 .qmake.conf 基本上与我的 .qmake.cache.in 对 Qmake 4 所做的相同。到目前为止,它似乎工作得很好。 嗯,你说你想让它们“兼容”,问题是没有办法,因为系统已经改变了。这种诡计是无证和不受支持的......

以上是关于Qmake 5.3:定义全局变量的主要内容,如果未能解决你的问题,请参考以下文章

qml全局变量定义建议

Laravel 5.3 登录成功后声明全局会话变量

解释啥是全局变量,如何定义

C语言中如何定义全局变量

全局变量怎么定义

fortran 定义全局变量