2025年qmake:配置qmake

qmake:配置qmake一 属性 qmake 有一个持久化配置系统 它允许在 qmake 中设置一次属性 并在每次调用 qmake 时查询它 可以在 qmake 中设置一个属性 qmake set PROPERTY VALUE 您可以从 qmake 检索此信息 如下所示 qmake query PROPERTY qmake query 列出内置属性 QMAKE SPEC 在主机构建期间解析并存储在

一、属性

qmake 有一个持久化配置系统,它允许在 qmake 中设置一次属性,并在每次调用 qmake 时查询它。

可以在 qmake 中设置一个属性:

qmake -set PROPERTY VALUE

您可以从 qmake 检索此信息,如下所示:

    qmake -query PROPERTY
qmake -query //列出内置属性

QMAKE_SPEC:在主机构建期间解析并存储在 QMAKESPEC 变量中的主机 mkspec 的短名称

QMAKE_VERSION:qmake 的当前版本

QMAKE_XSPEC:在目标构建期间解析并存储在 QMAKESPEC 变量中的目标 mkspec 的短名称

QT_HOST_BINS:主机可执行文件的位置

QT_HOST_DATA:qmake 使用的主机可执行文件的数据位置

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_IMPORTS:QML 1.x 扩展的位置

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..version 变量来查询 Qt 模块特定的版本号

二、QMAKESPEC

qmake 需要一个平台和编译器描述文件,其中包含许多用于生成适当 Makefile 的默认值。

标准 Qt 发行版带有许多这样的文件,位于 Qt 安装的 mkspecs 子目录中(如:D:\qt6.2\6.2.0\msvc2019_64\mkspecs)。

QMAKESPEC 环境变量可以包含以下内容:

包含 qmake.conf 文件的目录的完整路径。在这种情况下,qmake 将从该目录中打开 qmake.conf 文件。如果文件不存在,qmake 将退出并报错。

平台编译器组合的名称。在这种情况下,qmake 将在 Qt 编译时指定的数据路径的 mkspecs 子目录指定的目录中搜索。

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

三、缓存文件

缓存文件是 qmake 读取的特殊文件,用于查找未在 qmake.conf 文件、项目文件或命令行中指定的设置。

当 qmake 运行时,除非指定 – nocache 参数,否则它会在当前目录的父目录中查找名为 .qmake.cache 的文件 如果。qmake 找不到这个文件,它会默默地忽略这一步处理。

如果 qmake 找到一个 .qmake.cache 文件,那么它会在处理项目文件之前先处理这个文件。

四、文件扩展名

在正常情况下,qmake 会尝试为当前平台使用适当的文件扩展名。但是,有时需要覆盖每个平台的默认选择并明确定义要使用的 qmake 的文件扩展名。这是通过重新定义某些内置变量来实现的。

例如,可以在项目文件中使用以下分配重新定义用于 moc 文件的扩展名:

 QMAKE_EXT_MOC = .mymoc

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_MOC = .mymoc_1
QMAKE_EXT_MOC = .mymoc_2

有两个变量可以接受值列表:

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

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

编程小号
上一篇 2025-02-11 19:21
下一篇 2025-04-15 16:01

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/122563.html