运行 qmake

在通过在命令行上指定各种选项时运行 qmake 可以定制其行为。这些选项允许微调构建过程、提供有用的诊断信息和指定您的项目要针对的目标平台。

命令语法

运行 qmake 所使用的语法采用了以下简单形式

qmake [mode] [options] files

注意:如果您通过软件包管理器安装了 Qt,则二进制文件可能是 qmake6

操作模式

qmake 支持两种不同的操作模式。在默认模式下,qmake 使用项目文件中的信息生成 Makefile,但也可以使用 qmake 生成项目文件。如果您想显式设置模式,您必须在其他选项之前指定它。mode 可以是以下两个值之一

  • -makefile
    qmake 输出将为 Makefile。
  • -project
    qmake 输出将为项目文件。

    注意:创建的文件可能需要编辑。例如,为项目所需模块添加 QT 变量。

您可以使用 options 来指定通用和模式特定设置。仅在 Makefile 模式下适用的选项在 Makefile 模式选项 部分中描述,而影响项目文件创建的选项在 项目模式选项 部分中描述。

文件

files 参数代表一个或多个项目文件列表,由空格分隔。

通用选项

您可以在 qmake 命令行上指定一系列选项来自定义构建过程并覆盖平台默认设置。以下基本选项提供有关使用 qmake 的帮助、指定 qmake 写入输出文件的位置以及控制写入控制台的调试信息级别

  • -help
    qmake 将遍历这些功能并提供一些有用的帮助。
  • -o 文件
    qmake 输出将定向到 file。如果未指定此选项,qmake 将尝试根据其运行的模式使用合适的文件名作为输出。
    如果指定了 '-',输出将定向到 stdout。
  • -d
    qmake 将输出调试信息。多次添加 -d 增加详尽程度。

项目所使用的模板通常由项目文件中的TEMPLATE变量指定。您可以通过以下选项来覆盖或修改它:

  • -t tmpl
    qmake将以tmpl替代任何已设置的TEMPLATE变量,但仅限于在处理完(pro)文件之后。
  • -tp 前缀
    qmake将prefix添加到TEMPLATE变量中。

可以通过微调警告信息级别来帮助您在项目文件中找到问题

  • -Wall
    qmake将报告所有已知的警告。
  • -Wnone
    qmake不会生成任何警告信息。
  • -Wparser
    qmake将仅生成解析警告。这会提醒您在解析项目文件时可能遇到的常见错误和潜在问题。
  • -Wlogic
    qmake会警告项目文件中的常见错误和潜在问题。例如,qmake将报告列表中文件的多次出现和缺失文件。

Makefile模式选项

qmake -makefile [options] files

在Makefile模式下,qmake将生成用于构建项目的Makefile。除此之外,以下选项也可在此模式下使用,以影响项目文件的生成方式

  • -after
    qmake将在指定文件之后处理命令行中的赋值。
  • -nocache
    qmake将忽略.qmake.cache文件。
  • -nodepend
    qmake不会生成任何依赖信息。
  • -cache 文件
    qmake将使用指定的file作为缓存文件,忽略找到的其他所有.qmake.cache文件。
  • -spec spec
    qmake将使用spec作为平台和编译器信息的路径,并忽略QMAKESPEC的值。

您也可以在命令行中传递qmake赋值。它们在所有指定文件之前处理。例如,以下命令从test.pro生成Makefile

qmake -makefile -o Makefile "CONFIG+=test" test.pro

但是,一些指定的选项可以省略,因为它们是默认值

qmake "CONFIG+=test" test.pro

如果您确定要在指定的文件之后处理变量,则可以传递-after选项。当指定这个选项时,命令行中在-after选项之后的所有赋值将被推迟到指定的文件解析完毕之后。

项目模式选项

qmake -project [options] files

在项目模式下,qmake将生成项目文件。在此模式下,您还可以提供以下选项

  • -r
    qmake将递归地检查提供的目录。
  • -nopwd
    qmake不会在您当前的工作目录中查找源代码。它将只使用指定的files

在此模式中,files参数可以是文件或目录的列表。如果指定了目录,则它将被包含在DEPENDPATH变量中,并且相关代码将被包含在生成的项目文件中。如果提供了文件,它将被附加到相应的变量,具体取决于其扩展名。例如,UI文件被添加到FORMS,而C++文件被添加到SOURCES

您也可以在此模式下传递赋值。当这样做时,这些赋值将被放置在生成的项目文件的最后。

© 2024 Qt公司有限公司。此处包含的文档贡献是各自所有者的版权。所提供的文档依据自由软件基金的GNU自由文档许可证第1.3版条款授予使用权。Qt及其相关标识是芬兰或其他国家和地区Qt公司有限公司的商标。所有其他商标均为各自所有者的财产。