运行 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 file
qmake 的输出将指向file
。如果没有指定这个选项,qmake 会根据运行模式尝试使用合适的文件名来输出。
如果指定了"-",输出将指向 stdout。-d
qmake 将输出调试信息。多次添加-d
会增加冗余度。
项目使用的模板通常由项目文件中的TEMPLATE变量指定。您可以使用以下选项覆盖或修改模板:
-t tmpl
qmake 会用tmpl
来覆盖TEMPLATE
变量,但只能在处理 .pro 文件之后。-tp prefix
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 file
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。
在此模式下,您也可以在命令行中传递赋值。这样做时,这些赋值将放在生成的项目文件的最后。
© 2025 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.