Qt QML 杂记

qmake 手册 005 运行 qmake

2020-05-15  本文已影响0人  赵者也

qmake 手册 005 运行 qmake

qmake 的行为可以通过在命令行上指定各种选项来定制。它们允许对构建过程进行微调,提供有用的诊断信息,并可用于指定项目的目标平台。

命令语法

用于运行 qmake 的语法采用以下简单形式:

qmake [mode] [options] files

操作模式

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

模式值 说明
-makefile 此时 qmake 输出将是一个 Makefile
-project 此时 qmake 输出将是一个项目文件

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

可以使用这些 options 指定常规设置和特定于模式的设置。只适用于 Makefile 模式的选项在 Makefile 模式选项 部分进行了描述,而影响项目文件创建的选项则在 项目模式选项 部分进行了描述。

文件

files 参数表示一个或多个项目文件(以空格分隔)的列表。

通用选项

可以在 qmake 的命令行上指定各种选项,以便定制构建过程,并覆盖平台的默认设置。下面的基本选项提供了使用 qmake 的帮助,指定 qmake 在哪里写入输出文件,并控制将写入控制台的调试信息的级别:

选项 说明
-help 显示帮助
-o file qmake 输出将定向到 file。
如果未指定此选项,qmake 将尝试
为其输出使用合适的文件名,具体取决于它所运行的模式。

如果指定了'-',输出将定向到 stdout。
-d qmake 将输出调试信息。多次添加-d会增加冗余。

用于项目的模板通常由项目文件中的 TEMPLATE 变量指定。我们可以使用以下选项覆盖或修改此设置:

选项 说明
-t tmpl qmake 将使用 tmpl 覆盖任何设置的 TEMPLATE 变量,
但仅在 .pro 文件被处理之后
-tp prefix qmake 将为 TEMPLATE 变量添加 prefix 前缀

警告信息的级别可以进行微调,以帮助您发现项目文件中的问题:

选项 说明
-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 file qmake 将使用指定的 file 作为缓存文件,
忽略任何其他 .qmake.cache 缓存文件
-spec spec qmake 将使用 spec 作为平台和编译器信息的路径,
并忽略 QMAKESPEC 的值

我们还可以在命令行上传递 qmake 赋值。它们在所有指定的文件之前被处理。例如,下面的命令从 test.pro 生成 Makefile:

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

但是,某些指定的选项可以省略,因为它们是默认的 qmake 行为:

qmake "CONFIG+=test" test.pro

如果我们确定希望在指定文件之后处理变量,那么可以传递 -after 选项。当指定此值时,命令行中 -after 选项之后的所有赋值都将延迟到解析指定的文件之后。

项目模式选项

qmake -project [options] files

在项目模式下,qmake 将生成一个项目文件。此外,我们可以在此模式下提供以下选项:

选项 说明
-r qmake 将递归地遍历提供的目录
-nopwd qmake 不会在当前工作目录中查找源代码。它将只使用指定的 files

在此模式下,files 参数可以是文件或目录的列表。如果指定了一个目录,那么它将被包含在 DEPENDPATH 变量中,并且那里的相关代码将被包含在生成的项目文件中。如果给定一个文件,它将被追加到正确的变量,这取决于它的扩展名。例如,UI 文件被添加到 FORMS 中,c++ 文件被添加到 SOURCES 中。

还可以在此模式下在命令行上传递赋值。当这样做时,这些任务将放在生成的项目文件的最后。

上一篇下一篇

猜你喜欢

热点阅读