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 中。
还可以在此模式下在命令行上传递赋值。当这样做时,这些任务将放在生成的项目文件的最后。
网友评论