{[QT_HOST_DATA / get]在Qt功能配置(.prf)文件中做什么?

时间:2019-02-11 12:16:40

标签: qt configuration qmake

功能配置(.prf)文件中使用以下语法吗?定义:

$$[QT_HOST_DATA/get]

我知道$$[ ... ]将按照Qt文档中的说明访问QMake属性,但是在$$[QT_HOST_DATA/get]中表示法的/ get部分得到了澄清?究竟是做什么的?

还在Qt .conf文件中,include(对于其他.conf文件)和load()(对于.prf文件)有什么区别?< / p>

如果include(some.conf)仅包含some.conf的内容,并将其从字面上粘贴到包含的.conf文件中,那么load()到底能做什么?

我没有找到有关.prf文件结构的信息。 https://doc.qt.io/qt-5/qmake-advanced-usage.html说您可以创建.prf个文件,但对这些文件的处理方式或结构如何没有提及?

感谢您提供的任何说明!

1 个答案:

答案 0 :(得分:2)

  

在$$ [QT_HOST_DATA / get]中,符号的/ get部分在哪里得到澄清?究竟是做什么的?

除qmake源代码外,无处。看起来所有qmake属性最多可以具有四个特殊的“子属性”:$a = SplFixedArray::fromArray(array(1 => 1, 2 => 2, 3 => 3));。但是,它们的用途是一个谜。执行// save in to variable, and export (both things in 1 line) var abc = module.export = { a: function () { } } function b() { // access your module here abc.a(); } (在我的机器上)产生的值与普通xxx/dev xxx/src xxx/raw xxx/get相同。

  

我没有找到有关.prf文件结构的信息。

基本上,.prf只是“系统包含文件”。不过有两点:

  1. 所有.prf文件都位于qmake -query QT_HOST_DATA/get变量指向的已知位置。

顺便说一句。 $$[QT_HOST_DATA]是一种“保护变量”。我设法借助(另一个未公开的)QMAKEFEATURES功能进行了更改:

QMAKEFEATURES
    可以通过在cache()变量中提及
  1. Prf来隐式加载。例如,QMAKEFEATURES *= mydir # '*=' because of 3 passes under Windows # 'transient' prevents creation file on disk # only 'super' seems to work OK; no idea what's wrong with 'stash' or 'cache' cache(QMAKEFEATURES, set transient super) # now I can load .prf from <mydir> too... (默认值为btw。)导致包含CONFIG,请注意,这是在处理整个.pro之后发生的,因此.prf文件可用于后处理用户选项。
  

load()到底能做什么?

这只是专为.prf设计的CONFIG += qt的版本。它所做的全部只是包含.prf文件。但是,与<SomePrefix>/share/qt5/mkspecs/features/qt.prf不同,它可以立即执行此操作,并且与普通include()不同,您不应指定路径和扩展名。