配置 qmake
属性
qmake 有一个持久配置系统,允许您在 qmake 中设置一个属性一次,并在每次调用 qmake 时查询它。您可以在 qmake 中如下设置属性
qmake -set PROPERTY VALUE
应将适当的属性和值替换为 PROPERTY
和 VALUE
。
您可以通过以下方式从 qmake 中检索此信息
qmake -query PROPERTY qmake -query #queries all current PROPERTY/VALUE pairs
注意:qmake -query
除了您使用 qmake -set PROPERTY VALUE
设置的属性外,还会列出内置属性。
此信息将被保存到一个 QSettings 对象中(意思是为不同的平台保存到不同的地方)。
以下列表总结了一些 内置
属性
- QMAKE_SPEC - 主机
mkspec
的短名,在主机构建期间解析并存储在 QMAKESPEC 变量中 - QMAKE_VERSION - qmake 的当前版本
- QMAKE_XSPEC - 目标
mkspec
的短名,在目标构建期间解析并存储在 QMAKESPEC 变量中 - QT_HOST_BINS - 主机可执行文件的位置
- QT_HOST_DATA - qmake 使用的宿主可执行文件数据的位置
- QT_HOST_LIBS - 主机库的位置
- QT_HOST_LIBEXECS - 在运行时所需的主机库的可执行文件的位置
- QT_HOST_PREFIX - 所有主机路径的默认前缀
- QT_INSTALL_ARCHDATA - 通用架构相关 Qt 数据的位置
- QT_INSTALL_BINS - Qt 二进制文件(工具和应用程序)的位置
- QT_INSTALL_CONFIGURATION - Qt 设置的位置。Windows 上不适用
- QT_INSTALL_DATA - 通用架构无关 Qt 数据的位置
- QT_INSTALL_DOCS - 文档的位置
- QT_INSTALL_EXAMPLES - 示例的位置
- QT_INSTALL_HEADERS - 所有头文件的位置
- QT_INSTALL_LIBEXECS - 在运行时所需的库的可执行文件的位置
- QT_INSTALL_LIBS - 库的位置
- QT_INSTALL_PLUGINS - Qt 插件的位置
- QT_INSTALL_PREFIX - 所有路径的默认前缀
- QT_INSTALL_QML - QML 2.x 扩展的位置
- QT_INSTALL_TESTS - Qt 测试用例的位置
- QT_INSTALL_TRANSLATIONS - Qt 字符串翻译信息的位置
- QT_SYSROOT - 目标构建环境使用的 sysroot
- QT_VERSION - Qt 版本。我们建议您使用 $$QT.<module>.version 变量查询 Qt 模块特定版本号。
例如,您可以使用 QT_INSTALL_PREFIX
属性查询此 qmake 版本的 Qt 安装
qmake -query "QT_INSTALL_PREFIX"
您可以通过以下方式查询项目文件中的属性值
QMAKE_VERS = $$[QMAKE_VERSION]
QMAKESPEC
qmake需要一个包含许多默认值的平台和编译器描述文件,这些默认值用于生成适当的makefile。标准的Qt发行版包含了许多这些文件,位于Qt安装的mkspecs
子目录中。
QMAKESPEC
环境变量可以包含以下内容之一
- 一个包含
qmake.conf
文件的目录的完整路径。在这种情况下,qmake将从该目录中打开qmake.conf
文件。如果该文件不存在,qmake将以错误退出。 - 一个平台-编译器组合的名称。在这种情况下,qmake将在编译Qt时指定的数据路径的
mkspecs
子目录中搜索目录(参见QLibraryInfo::DataPath)。
注意:在添加到由INCLUDEPATH系统变量内容的INCLUDEPATH后,将自动将QMAKESPEC
路径添加到生成的makefile中。
缓存文件
缓存文件是qmake读取以查找未在qmake.conf
文件、项目文件或命令行中指定的设置的特文件。当运行qmake时,它会在当前目录的父目录中查找名为.qmake.cache
的文件,除非您指定-nocache
。如果qmake无法找到此文件,它将静默地忽略此处理步骤。
如果qmake找到一个.qmake.cache
文件,则它将在处理项目文件之前首先处理此文件。
文件扩展名
在正常情况下,qmake将尝试为您 Platform 选择合适的文件扩展名。但是,有时有必要覆盖每个平台的默认选择并显式定义qmake要使用的文件扩展名。这是通过重新定义某些内置变量来实现的。例如,可以用以下项目中的赋值来重新定义用于moc文件的扩展名
QMAKE_EXT_MOC = .mymoc
以下变量可用来重新定义qmake识别的常见文件扩展名
- QMAKE_EXT_MOC修改放置在包含的moc文件上的扩展名。
- QMAKE_EXT_UI修改用于Qt Designer UI文件的扩展名(通常在FORMS)。
- QMAKE_EXT_PRL修改放置在库依赖文件上的扩展名。
- QMAKE_EXT_LEX更改Lex文件中使用的后缀(通常在LEXSOURCES)。
- QMAKE_EXT_YACC更改Yacc文件中使用的后缀(通常在YACCSOURCES)。
- QMAKE_EXT_OBJ更改生成目标文件使用的后缀。
以上都是仅接受第一个值,因此您必须指定仅在整个项目文件中使用的单个值。有两个变量接受值列表
- QMAKE_EXT_CPP使qmake将所有具有这些后缀的文件解释为C++源文件。
- QMAKE_EXT_H使qmake将所有具有这些后缀的文件解释为C和C++头文件。
© 2024 认证的技术有限公司。本文件中包含的文档贡献是各自所有者的版权。提供的文档受自由软件基金会发布的GNU自由文档许可证第1.3版的许可条款约束。GNU自由文档许可证1.3版。Qt以及相关标志是芬兰和/或其他国家全球范围内Qt公司的商标。所有其他商标均为各自所有者的财产。