本页内容

配置 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 对象中(这意味着它们在不同平台上的存储位置会有所不同)。

以下列表总结了 `built-in ` 的属性:

  • 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 Test 测试用例的位置
  • 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 编译时指定的数据路径(参见QLibraryInfo::DataPath )中的mkspecs 子目录内进行搜索。

注意: QMAKESPEC 路径 将自动添加到生成的Makefile中,位于INCLUDEPATH系统变量的内容之后。

缓存文件

缓存文件是一个特殊文件,qmake 会读取该文件以查找未在qmake.conf 文件、项目文件或命令行中指定的设置。运行 qmake 时,它会在当前目录的父目录中查找名为.qmake.cache 的文件,除非您指定了-nocache 。如果 qmake 找不到该文件,它将静默地忽略此处理步骤。

如果 qmake 找到了.qmake.cache 文件,它会在处理项目文件之前先处理该文件。

文件扩展名

在正常情况下,qmake 会尝试使用适合您平台的文件扩展名。但是,有时有必要覆盖各平台的默认选项,并显式定义 qmake 应使用的文件扩展名。这可以通过重新定义某些内置变量来实现。 例如,可以通过在项目文件中使用以下赋值语句来重新定义moc文件所使用的扩展名:

QMAKE_EXT_MOC = .mymoc

以下变量可用于重新定义 qmake 识别的常见文件扩展名:

上述所有变量均只接受第一个值,因此您必须为其赋值一个值,该值将在整个项目文件中使用。有两个变量接受一组值:

  • QMAKE_EXT_CPP使 qmake 将所有带有这些后缀的文件解释为 C++ 源文件。
  • QMAKE_EXT_H使 qmake 将所有带有这些后缀的文件解释为 C 和 C++ 头文件。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.