$$[QT\u HOST\u DATA/get]在QT功能配置(.prf)文件中做什么?

$$[QT\u HOST\u DATA/get]在QT功能配置(.prf)文件中做什么?,qt,configuration,qmake,Qt,Configuration,Qmake,功能配置(.prf)文件中使用的以下语法在哪里?定义: $$[QT_HOST_DATA/get] 我知道$$[…]要访问qtake属性,如Qt文档中所述,但是$[Qt\u HOST\u DATA/get]中的符号/get部分在哪里?它到底做了什么 另外,在Qt.conf文件中,include(对于其他.conf文件)和load()(对于.prf文件)之间有什么区别 如果include(some.conf)仅仅包含some.conf的内容,并将其粘贴到include.conf文件中,那么load

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

$$[QT_HOST_DATA/get]
我知道
$$[…]
要访问qtake属性,如Qt文档中所述,但是
$[Qt\u HOST\u DATA/get]
中的符号/get部分在哪里?它到底做了什么

另外,在Qt
.conf
文件中,include(对于其他
.conf
文件)和load()(对于
.prf
文件)之间有什么区别

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

我没有找到有关
.prf
文件结构的信息。 说明您可以创建
.prf
文件,但没有说明这些文件的处理方式或结构

感谢您提供的任何澄清

$$[QT\u HOST\u DATA/get]中符号的/get部分在哪里?它到底做了什么

除了qmake源代码,没有其他地方。看起来所有qmake属性最多可能有四个特殊的“子周期”:
xxx/dev xxx/src xxx/raw xxx/get
。然而,它们的用途却是个谜。执行
qmake-query QT\u HOST\u DATA/get
生成(在我的机器上)与普通
$$[QT\u HOST\u DATA]
相同的值

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

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

  • 所有.prf文件都位于
    QMAKEFEATURES
    变量所指向的已知位置
  • 顺便说一句,
    QMAKEFEATURES
    是一种“受保护变量”。我只是在(另一个未记录的)
    cache()函数的帮助下才设法更改它:

    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...
    
    QMAKEFEATURES*=mydir#'*='因为Windows下有3次通过
    #“瞬态”阻止在磁盘上创建文件
    #只有“超级”似乎可以工作;不知道“隐藏”或“缓存”有什么问题
    缓存(QMAKEFEATURES,设置瞬态超级)
    #现在我可以加载。prf从太。。。
    
  • 通过在
    CONFIG
    变量中提及Prf,可以隐式加载它。例如,
    CONFIG+=qt
    (这是默认值,顺便说一句)导致包含
    /share/qt5/mkspecs/features/qt.prf
    注意,这是在处理整个.pro之后发生的,因此.prf文件可用于后期处理用户选项
  • load()具体做什么

    它只是专门为.prf设计的
    include()
    版本。它所做的只是包含.prf文件。但是,与
    CONFIG+=xxx
    不同,它会立即执行此操作,并且与普通的
    include()
    不同,您不应该指定路径和扩展名

    $$[QT\u HOST\u DATA/get]中符号的/get部分在哪里?它到底做了什么

    除了qmake源代码,没有其他地方。看起来所有qmake属性最多可能有四个特殊的“子周期”:
    xxx/dev xxx/src xxx/raw xxx/get
    。然而,它们的用途却是个谜。执行
    qmake-query QT\u HOST\u DATA/get
    生成(在我的机器上)与普通
    $$[QT\u HOST\u DATA]
    相同的值

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

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

  • 所有.prf文件都位于
    QMAKEFEATURES
    变量所指向的已知位置
  • 顺便说一句,
    QMAKEFEATURES
    是一种“受保护变量”。我只是在(另一个未记录的)
    cache()函数的帮助下才设法更改它:

    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...
    
    QMAKEFEATURES*=mydir#'*='因为Windows下有3次通过
    #“瞬态”阻止在磁盘上创建文件
    #只有“超级”似乎可以工作;不知道“隐藏”或“缓存”有什么问题
    缓存(QMAKEFEATURES,设置瞬态超级)
    #现在我可以加载。prf从太。。。
    
  • 通过在
    CONFIG
    变量中提及Prf,可以隐式加载它。例如,
    CONFIG+=qt
    (这是默认值,顺便说一句)导致包含
    /share/qt5/mkspecs/features/qt.prf
    注意,这是在处理整个.pro之后发生的,因此.prf文件可用于后期处理用户选项
  • load()具体做什么

    它只是专门为.prf设计的
    include()
    版本。它所做的只是包含.prf文件。但是,与
    CONFIG+=xxx
    不同,它会立即执行此操作,并且与普通的
    include()
    不同,您不应该指定路径和扩展名。

    太棒了!谢谢你的澄清,@Matt!令人惊叹的!谢谢你的澄清,@Matt!