qmake 的基本行为受定义每个项目构建过程的变量声明的影响。
此变量仅适用于 Android 目标。
指定 Android 目标 ABI 列表。有效值为:armeabi-v7a、arm64-v8a、x86、x86_64。如:
qmake ANDROID_ABIS="armeabi-v7a arm64-v8a"
此变量仅适用于 Android 目标。指定 Android API 级别编号。
此变量仅适用于 Android 目标。
使用带有“android.app.arguments”标签的 AndroidManifest.xml 为 Android 应用程序指定额外的命令行参数。
此变量仅适用于 Android 模块。以 .jar 格式指定模块使用的预捆绑依赖项列表,例如:
ANDROID_BUNDLED_JAR_DEPENDENCIES += jar/Qt6Android.jar
此变量仅适用于 Android 目标。
默认情况下,androiddeployqt 将检测应用程序的依赖项。 但是,由于无法检测到插件的运行时使用情况,因此可能会出现误报,因为应用程序可能依赖于任何潜在依赖项的插件。 如果您想最小化 APK 的大小,可以使用此变量覆盖自动检测。这将包含需要包含的所有 Qt 文件的列表,以及相对于 Qt 安装根目录的路径。
此变量仅适用于 Android 目标。
指定 androiddeployqt 和 androidtestrunner 所需的 android-deployment-settings.json 文件的路径。这会覆盖 qmake 生成的设置文件的路径,因此您必须确保提供有效的设置文件。
此变量仅适用于 Android 目标。
将被复制到应用程序的 libs 文件夹并在启动时加载的外部库列表。
例如,这可用于在应用程序中启用 OpenSSL。
要包含多个 ABI 的外部库,其中每个 ABI 都有自己的目录,请使用以下命令:
for (abi, ANDROID_ABIS): ANDROID_EXTRA_LIBS += $$PWD/$${abi}/library_name.so
如果 ABI 包含在库名称中,请使用以下内容:
for (abi, ANDROID_ABIS): ANDROID_EXTRA_LIBS += $$PWD/library_name_$${abi}.so
此变量仅适用于 Android 目标。
指定应用程序必须捆绑但无法通过资源系统交付的 C++ 插件或资源的路径,例如 QML 插件。有了这个变量,androiddeployqt 将确保一切都被正确打包和部署。
此变量必须指向构建额外插件的目录。 此外,构建目录结构必须遵循类似于Qt插件的命名约定,即plugins/<plugin name>。
插件库的名称格式应为 libplugins_<type>_<name>_<abi>.so。为了实现这一点,插件 pro 文件可以定义如下:
TEMPLATE = lib CONFIG += plugin PLUGIN_TYPE = imageformats DESTDIR = $$top_builddir/plugins/myplugin TARGET = $$qt5LibraryTarget(myplugin, "plugins/$$PLUGIN_TYPE/")
.qmake.conf 中定义的 top_builddir 为:
top_builddir=$$shadowed($$PWD)
这将确保将正确的名称修改应用于插件库(plugins/myplugin/libplugins_imageformats_myplugin_armeabi-v7a.so)。
然后,假设一个额外的图像格式插件 myplugin 被构建为 $$DESTDIR/plugins/myplugin/,以下确保它被正确打包:ANDROID_EXTRA_PLUGINS += $$top_builddir/plugins
此变量仅适用于 Android 模块。指定模块的功能列表:
ANDROID_FEATURES += android.hardware.location.gps
此变量仅适用于 Android 模块。它指定了模块使用的预构建依赖项列表,例如:
ANDROID_LIB_DEPENDENCIES += plugins/libplugins_platforms_qtforandroid.so
此变量仅适用于 Android 目标。
指定项目的最低 Android API 级别。 默认情况下,此变量设置为 API 级别 23。
此变量仅适用于 Android 目标。
指定自定义 Android 包模板的路径。 Android 包模板包含:
- AndroidManifest.xml 文件
- build.gradle 文件和其他 Gradle 脚本
- res/values/libs.xml 文件
此变量指定的路径可以包含 src 目录下的自定义 Java 类。默认情况下,androiddeployqt 工具将应用程序模板从 Qt for Android 安装路径复制到项目的构建目录中,然后它复制此变量指定的路径的内容,覆盖任何现有文件。
此变量仅适用于 Android 模块。指定模块的权限列表:
ANDROID_PERMISSIONS += android.permission.ACCESS_FINE_LOCATION
此变量仅适用于 Android 目标。
指定项目的目标 Android API 级别。 默认情况下,此变量设置为 API 级别 29。
此变量仅适用于 Android 目标。指定应用程序的版本号。
此变量仅适用于 Android 目标。设置应用程序版本的字符串。
指定项目配置和编译器选项。这些值由 qmake 内部识别并具有特殊含义。
以下 CONFIG 值控制编译器和链接器标志:
链接库时,qmake 依赖于底层平台来了解该库链接的其他库。如果是静态链接,除非使用以下 CONFIG 选项,否则 qmake 将不会获得相应信息:
注意:构建静态库时需要 create_prl 选项,而使用静态库时需要 link_prl 选项。
以下选项定义应用程序或库类型:
这些选项仅定义 Windows 上的特定功能:
以下选项仅在 macOS 上生效:
以下选项仅在 Linux/Unix 平台上生效:
qmake 将此变量的值添加为编译器 C 预处理器宏。
为调试配置指定预处理器定义。加载项目后,此变量的值会添加到 DEFINES 中。
为发布配置指定预处理器定义。加载项目后,此变量的值会添加到 DEFINES 中。
对于 MSVC mkspecs,此变量默认包含值 NDEBUG。
此变量仅在 Windows 上使用应用程序模板时使用。指定要包含在项目中的 .def 文件。
指定 qmake 要扫描的目录列表,以确定依赖关系。当 qmake 抓取在源代码中 #include 的头文件时,将使用此变量。
指定放置目标文件的位置。
指定要包含在 dist 目标中的文件列表。此功能仅受 UnixMake 规范支持。
注意:此变量仅适用于 Windows 目标。指定复制目标 dll 的位置。
指定包含用户界面文本翻译成非母语的翻译 (*.ts) 文件列表。
与 TRANSLATIONS 相比,EXTRA_TRANSLATIONS 中的翻译文件将仅由 lrelease 处理,而不是由 lupdate 处理。
可以使用 CONFIG += lrelease 在构建期间自动编译文件,并使用 CONFIG += lrelease embed_translations 使它们在 Qt 资源系统中可用。
指定在编译前由 uic 处理的 UI 文件。构建这些 UI 文件所需的所有依赖项、头文件和源文件都将自动添加到项目中。
指定在 .vcproj 文件中设置的 GUID。GUID 通常是随机确定的。如果需要固定的 GUID,则可以使用此变量进行设置。
此变量仅特定于 .vcproj 文件; 否则将被忽略。
定义项目的头文件。
qmake 会自动检测头文件中的类是否需要 moc,并将相应的依赖项和文件添加到项目中,用于生成和链接 moc 文件。
此变量仅用于在 Mac OS 上设置应用程序图标。
此变量仅在 Windows 上用于 Visual Studio 项目生成,以将指定文件放在 Generated Files 文件夹中。
指定编译项目时应搜索的#include 目录。
指定执行 make install 或类似安装过程时将安装的资源列表。列表中的每个项目通常都定义有提供有关安装位置信息的属性。
例如,以下 target.path 定义描述了构建目标的安装位置,并且 INSTALLS 分配将构建目标添加到要安装的现有资源列表中:
target.path += $$[QT_INSTALL_PLUGINS]/imageformats
INSTALLS += target
INSTALLS 有一个 .CONFIG 成员,可以采用几个值:
此变量仅对 Android 目标有用。指定用于构建项目的JDK/OpenJDK 安装路径。
指定要链接到项目中的库列表。如果使用 Unix -l(库)和 -L(库路径)标志,qmake 会在 Windows 上正确处理库(即,将库的完整路径传递给链接器)。 该库必须存在以便 qmake 找到 -l lib 所在的目录。
如:
unix:LIBS += -L/usr/local/lib -lmath
win32:LIBS += c:/mylibs/math.lib
指定要私下链接到项目中的库列表。此变量的行为与 LIBS 相同,只是为 Unix 构建的共享库项目不在其链接接口中公开这些依赖项。
这样做的结果是,如果项目 C 依赖于库 B 而后者私下依赖于库 A,但 C 也想直接使用来自 A 的符号,则需要显式链接到 A。 换句话说,私有链接的库在构建时不会传递公开。
指定生成的 Makefile 的名称。
指定生成 Makefile 时要使用的 Makefile 生成器的名称。
这些变量由 qmake 内部处理,不应修改或使用。
指定应放置所有中间 moc 文件的目录。
定义项目的 Objective-C++ 头文件。
qmake 会自动检测头文件中的类是否需要 moc,并将相应的依赖项和文件添加到项目中,用于生成和链接 moc 文件。
这类似于 HEADERS 变量,但会让生成的 moc 文件使用 Objective-C++ 编译器进行编译。
此变量是从 SOURCES 变量自动填充的。每个源文件的扩展名被替换为 .o (Unix) 或 .obj (Win32)。 可以将对象添加到列表中。
指定应放置所有中间对象的目录。
表示用于创建预编译头文件的头文件,以提高项目的编译速度。 当前仅在某些平台上支持预编译头文件(Windows - 所有 MSVC 项目类型,Apple - Xcode、Makefile、Unix - gcc 3.3 及更高版本)。
指定指向包含正在解析的当前文件的目录的完整路径。这对于在编写项目文件以支持影子构建时引用源树中的文件很有用。注意:不要试图覆盖这个变量的值。
指定通向 qmake 放置生成的 Makefile 的目录完整路径。注意:不要试图覆盖此变量的值。
指定资源系统中 .qm 文件将通过 CONFIG += embed_translations 提供的目录。默认为:/i18n/。
指定由 CONFIG += lrelease 生成的目标目录 .qm 文件将安装到的连接。如果设置了 CONFIG += embed_translations,则没有任何影响。
指定 qmake 程序本身的名称并放置在生成的 Makefile 中。
一个系统变量,包含生成 Makefile 时使用的 qmake 配置的完整路径。该变量的值是自动计算的。注意:不要试图覆盖这个变量的值。
此变量仅用于 Unix 平台。指定创建共享库时要执行的命令。
此变量仅用于 macOS、iOS、tvOS 和 watchOS。
指定将与库包一起安装的数据,通常用于指定头文件的集合。
例如,以下几行将 path/to/header_one.h 和 path/to/header_two.h 添加到包含有关框架提供的标头信息的组中:
FRAMEWORK_HEADERS.version = Versions
FRAMEWORK_HEADERS.files = path/to/header_one.h path/to/header_two.h
FRAMEWORK_HEADERS.path = Headers
QMAKE_BUNDLE_DATA += FRAMEWORK_HEADERS
最后一行将有关标头的信息添加到将与库包一起安装的资源集合中。
将 lib_bundle 选项添加到 CONFIG 变量时,会创建库包。
此变量仅用于 macOS、iOS、tvOS 和 watchOS。
指定要用于库包的扩展。这允许使用自定义扩展名而不是标准的 .framework 目录名称扩展名创建框架。
例如,以下定义将生成带有 .myframework 扩展名的框架:
QMAKE_BUNDLE_EXTENSION = .myframework
指定在构建包含 C 源代码的项目时将使用的 C 编译器。只需要指定编译器可执行文件的文件名,只要它在处理 Makefile 时位于 PATH 变量中包含的路径上即可。
指定用于构建项目的 C 编译器标志。可以通过分别修改 QMAKE_CFLAGS_DEBUG 和 QMAKE_CFLAGS_RELEASE 变量来调整特定于调试和发布模式的标志。
为调试版本指定 C 编译器标志。
为发布版本指定 C 编译器标志。
为在 CONFIG 中设置 force_debug_info 的发布版本指定 C 编译器标志。
此变量仅用于 Unix 平台。指定用于创建共享库的编译器标志。
指定用于创建多线程应用程序的编译器标志。
此变量仅在设置了 warn_off 的 CONFIG 选项时使用。
此变量仅在设置了 warn_on 的 CONFIG 选项时使用。
指定生成的文件(例如,通过 moc 和 uic)和要由 make clean 删除的目标文件的列表。
指定在构建包含 C++ 源代码的项目时将使用的 C++ 编译器。只需要指定编译器可执行文件的文件名,只要它在处理 Makefile 时位于 PATH 变量中包含的路径上即可。
指定用于构建项目的 C++ 编译器标志。可以通过分别修改 QMAKE_CXXFLAGS_DEBUG 和 QMAKE_CXXFLAGS_RELEASE 变量来调整特定于调试和发布模式的标志。
为调试版本指定 C++ 编译器标志。
为发布版本指定 C++ 编译器标志。
为在 CONFIG 中设置 force_debug_info 的发布版本指定 C++ 编译器标志。
指定用于创建共享库的 C++ 编译器标志。
指定用于创建多线程应用程序的 C++ 编译器标志。
指定用于抑制编译器警告的 C++ 编译器标志。
指定用于生成编译器警告的 C++ 编译器标志。
此变量仅用于 macOS、iOS、tvOS 和 watchOS。用于签署证书和配置文件的开发团队的标识符。
指定要由 make distclean 删除的文件列表。
包含共享库的扩展。注意:更改扩展名的特定于平台的变量会覆盖此变量的内容。
包含共享静态库的扩展。
包含用于包含的 moc 文件的扩展名。
包含用于 Qt Designer UI 文件的扩展名。
包含用于创建的 PRL 文件的扩展名。
包含用于提供给 Lex 的文件的扩展名。
包含用于提供给 Yacc 的文件的扩展名。
包含用于生成的目标文件的扩展名。
包含应解释为 C++ 源代码的文件的后缀。
包含应解释为 C 头文件的文件的后缀。
指定附加编译器或预处理器的列表。
指定附加 qmake 目标的列表。
包含失败的需求列表。这个变量的值是由qmake设置的,不能修改。
此变量仅用于 macOS、iOS、tvOS 和 watchOS。
此变量包含要用于构建(*.framework)的框架的名称。
默认情况下,此变量包含与 TARGET 变量相同的值。
此变量仅用于 macOS、iOS、tvOS 和 watchOS。
对于构建目标是 macOS、iOS、tvOS 或 watchOS 框架的项目,此变量用于指定将应用于构建的框架的版本号。
默认情况下,此变量包含与 VERSION 变量相同的值。
提供有关运行 qmake 的主机的信息。
win32-g++:contains(QMAKE_HOST.arch, x86_64):{
message("Host is 64bit")
...
}
指定附加到 INCLUDEPATH 的系统头路径列表。
指定在构建具有 OpenGL/ES 或 OpenVG 支持的目标时要添加到 INCLUDEPATH 的 EGL 头文件的位置。
指定在构建具有 OpenGL 支持的目标时要添加到 INCLUDEPATH 的 OpenGL 头文件的位置。
如果 OpenGL 实现使用 EGL(大多数 OpenGL/ES 系统),则可能还需要设置 QMAKE_INCDIR_EGL。
此变量指定在构建具有 OpenGL ES 2 支持的目标时要添加到 INCLUDEPATH 的 OpenGL 头文件的位置。
如果 OpenGL 实现使用 EGL(大多数 OpenGL/ES 系统),则可能还需要设置 QMAKE_INCDIR_EGL。
指定在构建具有 OpenVG 支持的目标时要添加到 INCLUDEPATH 的 OpenVG 头文件的位置。
如果 OpenVG 实现使用 EGL,则可能还需要设置 QMAKE_INCDIR_EGL。
此变量仅用于 Unix 平台。
指定在构建 X11 目标时要添加到 INCLUDEPATH 的 X11 头文件路径的位置。
此变量仅用于 macOS、iOS、tvOS 和 watchOS 平台。
指定要包含在 macOS、iOS、tvOS 和 watchOS 应用程序包中的属性列表文件 .plist 的名称。
在 .plist 文件中,您可以定义一些变量,qmake 将用相关值替换这些变量:以下略。
此变量仅在 iOS 平台上使用。指定应用程序支持的最低硬性 iOS 版本。
此变量仅在 iOS 平台上使用。指定应用程序使用的启动屏幕。如果未设置,则使用默认启动屏幕。
指定传递给链接器的一组通用标志。如果您需要更改用于特定平台或项目类型的标志,请使用专用变量之一来代替此变量。
此变量仅在 Windows 上使用。指定用于构建控制台程序的链接器标志。
指定调试版本的链接器标志。
指定用于构建插件的链接器标志。
此变量仅用于 Unix 平台。指定使用 QMAKE_RPATHDIR 中的值所需的链接器标志。
指定在 QMAKE_RPATHDIR 中启用相对路径所需的链接器标志。
指定动态链接器理解为引用可执行文件或库的位置的字符串。
指定使用 QMAKE_RPATHLINKDIR 中的值所需的链接器标志。
指定发布版本的链接器标志。
为在 CONFIG 中设置 force_debug_info 的发布版本指定链接器标志。
指定用于构建应用程序的链接器标志。
指定用于构建共享库的链接器标志。
指定用于设置共享对象名称的链接器标志,例如 .so 或 .dll。
指定用于构建多线程项目的链接器标志。
此变量仅在 Windows 上使用。指定用于构建 Windows GUI 项目(即非控制台应用程序)的链接器标志。
指定所有项目的库搜索路径列表。要在项目文件中指定其他搜索路径,请使用 LIBS。
指定所有项目的系统库搜索路径列表。
此变量仅用于 Unix 平台。指定所有带有 -L 前缀的库目录的位置。
当 EGL 与 OpenGL/ES 或 OpenVG 一起使用时,指定 EGL 库目录的位置。
指定 OpenGL 库目录的位置。
如果 OpenGL 实现使用 EGL(大多数 OpenGL/ES 系统),则可能还需要设置 QMAKE_LIBDIR_EGL。
指定 OpenVG 库目录的位置。
如果 OpenVG 实现使用 EGL,则可能还需要设置 QMAKE_LIBDIR_EGL。
此变量仅用于 Unix 平台。指定 X11 库目录的位置。
指定每个项目需要链接的附加库。要在项目文件中指定库,请改用 LIBS。
指定每个项目需要链接的其他私有库。
要在库项目文件中指定私有库,请改用 LIBS_PRIVATE。
使用 OpenGL/ES 或 OpenVG 构建 Qt 时指定所有 EGL 库。通常的值是 -lEGL。
指定所有 OpenGL 库。
如果 OpenGL 实现使用 EGL(大多数 OpenGL/ES 系统),则可能还需要设置 QMAKE_LIBS_EGL。
这些变量指定了 OpenGL ES 1 和 OpenGL ES 2 的所有 OpenGL 库。
如果 OpenGL 实现使用 EGL(大多数 OpenGL/ES 系统),则可能还需要设置 QMAKE_LIBS_EGL。
指定所有 OpenVG 库。通常的值是 -lOpenVG。
一些 OpenVG 引擎是在 OpenGL 之上实现的。这将在配置时检测到,并且 QMAKE_LIBS_OPENGL 将隐式添加到 QMAKE_LIBS_OPENVG 链接 OpenVG 库的任何位置。
如果 OpenVG 实现使用 EGL,则可能还需要设置 QMAKE_LIBS_EGL。
此变量仅用于 Unix 平台。指定构建多线程目标时需要链接的所有库。
此变量仅用于 Unix 平台。指定所有 X11 库。
如果指定了 lib 模板,则此变量不为空。
指定构建基于应用程序的项目时将使用的链接器。只需指定链接器可执行文件的文件名,只要它在处理 Makefile 时位于 PATH 变量中包含的路径上即可。
指定创建共享库时要执行的命令。
指定在创建到共享库的链接时要执行的命令。
通过 CONFIG += lrelease 启用时传递给 lrelease 的附加选项列表。
指定用于构建项目的目标 C/C++ 编译器标志。除了 QMAKE_CFLAGS 和 QMAKE_CXXFLAGS 之外,还使用这些标志。
指定将 TARGET 链接在一起后要执行的命令。这个变量也不是 mally 为空,因此不执行任何操作。注意:这个变量对 Xcode 项目没有影响。
指定在将 TARGET 链接在一起之前要执行的命令。此变量通常为空,因此不会执行任何操作。注意:这个变量对 Xcode 项目没有影响。
此变量仅用于 Visual Studio 项目文件。
在为 IDE 生成项目文件时确定项目的名称。默认值为目标名称。
此变量仅用于 macOS、iOS、tvOS 和 watchOS。
有效配置文件的 UUID。与 QMAKE_DEVELOPMENT_TEAM 结合使用以指定供应配置文件。
在 macOS 上构建通用二进制文件时使用此变量。
此变量仅在 macOS 平台上使用。指定应用程序支持的最低硬性 macOS 版本。
指定要创建的 Makefile 的名称。
包含 qmake 可执行文件的绝对路径。注意:不要试图覆盖这个变量的值。
此变量用于自定义在使用它的每个构建规则中传递给资源编译器(Resource Compiler (rcc))的选项列表。
例如,以下行确保每次调用 rcc 时都将 -threshold 和 -compress 选项与特定值一起使用:
QMAKE_RESOURCE_FLAGS += -threshold 0 -compress 9
此变量仅用于 Unix 平台。
指定在链接时添加到可执行文件的库路径列表,以便在运行时优先搜索路径。
当指定了相对路径时,qmake 会将它们转换成动态链接器理解的与引用可执行文件或库的位置相关的形式。这仅受某些平台(当前基于 Linux 和 Darwin 的平台)支持,并且可以通过检查是否设置了 QMAKE_REL_RPATH_BASE 来检测。
指定静态链接器的库路径列表以搜索共享库的隐式依赖项。
指定构建对象所需的单个规则。
指定构建对象所需的单个规则。
指定构建对象所需的单个规则。
指定构建对象所需的单个规则。
如果已定义,则此变量的值将用作附加到已构建共享库的 SONAME 标识符的路径。SONAME 是动态链接器稍后用于引用库的标识符。通常,此引用可能是库名称或完整的库路径。在 macOS、iOS、tvOS 和 watchOS 上,可以使用以下占位符相对指定路径:
- @rpath:扩展到当前进程可执行文件或引用库中由 LC_RPATH mach-o 命令定义的路径。
- @executable_path:扩展到当前进程的可执行位置。
- @loader_path:扩展到引用的可执行文件或库位置。
在大多数情况下,使用 @rpath 就足够了,推荐使用:
# <project root>/project.pro
QMAKE_SONAME_PREFIX = @rpath
但是,也可以使用不同的占位符或绝对路径来指定前缀,例如以下之一:
# <project root>/project.pro
QMAKE_SONAME_PREFIX = @executable_path/../Frameworks
QMAKE_SONAME_PREFIX = @loader_path/Frameworks
QMAKE_SONAME_PREFIX = /Library/Frameworks
指定项目目标的名称。
仅限 Windows。指定项目目标生产商。这在适用的情况下用于将公司名称放入应用程序的属性中(右键->属性->详细信息)。这仅在设置了 VERSION 或 RC_ICONS 变量且未设置 RC_FILE 和 RES_FILE 变量时使用。
仅限 Windows。指定项目目标的描述。这用于在适用的情况下将描述放入应用程序的属性中。这仅在设置了 VERSION 或 RC_ICONS 变量且未设置 RC_FILE 和 RES_FILE 变量时使用。
仅限 Windows。指定项目目标的版权信息。这用于在适用的情况下将版权信息放入应用程序的属性中。这仅在设置了 VERSION 或 RC_ICONS 变量且未设置 RC_FILE 和 RES_FILE 变量时使用。
仅限 Windows。指定项目目标的产品名称。这在适用的情况下用于将产品放入应用程序的属性中。这仅在设置了 VERSION 或 RC_ICONS 变量且未设置 RC_FILE 和 RES_FILE 变量时使用。
仅限 Windows。指定项目目标的原始文件名。这在适用的情况下用于将原始文件名放入应用程序的属性中。这仅在设置了 VERSION 或 RC_ICONS 变量且未设置 RC_FILE 和 RES_FILE 变量时使用。
仅限 Windows。指定项目目标的内部名称。这在适用的情况下用于将内部名称放入应用程序的属性中。这仅在设置了 VERSION 或 RC_ICONS 变量且未设置 RC_FILE 和 RES_FILE 变量时使用。
仅限 Windows。指定项目目标的注释。这在适用的情况下用于将注释放入应用程序的属性中。这仅在设置了 VERSION 或 RC_ICONS 变量且未设置 RC_FILE 和 RES_FILE 变量时使用。
仅限 Windows。指定项目目标的商标信息;这在适用的情况下用于将商标信息放入应用程序的属性中。这仅在设置了 VERSION 或 RC_ICONS 变量且未设置 RC_FILE 和 RES_FILE 变量时使用。
仅限 Windows。指定项目目标的清单文件。这仅在未设置 RC_FILE 和 RES_FILE 变量时使用。别忘了把 CONFIG 变量中的 embed_manifest_exe 和 embed_manifest_dll 去掉,否则会和编译器生成的冲突。
此变量仅在 tvOS 平台上使用。指定应用程序支持的 tvOS 最低硬版本。
此变量用于自定义在使用它的每个构建规则中传递给用户界面编辑器(uic)的选项列表。
此变量仅在 watchOS 平台上使用。指定应用程序支持的 watchOS 最低硬版本。
指定用于自动生成的 QML 类型注册的主要版本。
自动注册 C++ 中定义的 QML 类型时,请使用此次要版本注册模块的附加版本。通常,要注册的次要版本是从元对象中推断出来的。
如果元对象未更改,并且您仍希望导入具有较新次要版本号的 QML 模块,则可以使用此变量。例如,MyModule 元对象在 1.1 级别,但您希望将模块导入为 1.3。
将 QML_IMPORT_MAJOR_VERSION 和 QML_IMPORT_MINOR_VERSION 指定为 <major>.<minor> 版本字符串。
指定用于自动生成的 QML 类型注册的模块名称。
指定在生成 qmltypes 文件时要考虑的具有元类型的更多 JSON 文件。当外部库提供直接或作为其他类型的基本类型或属性公开给 QML 的类型时,请使用此选项。
指定项目使用的 Qt 模块。
在 C++ 实现级别,使用 Qt 模块使其头文件可用于包含并使其链接到二进制文件。
默认情况下,QT 包含 core 和 gui,确保无需进一步配置即可构建标准的 GUI 应用程序。
如果要构建没有 Qt GUI 模块的项目,则需要使用“-=”运算符排除 gui 值。
以下代码将导致构建一个最小的 Qt 项目:
QT -= gui
指定要与应用程序链接的静态 Qt 插件的名称列表,以便它们可用作内置资源。
qmake 会自动添加使用的 Qt 模块通常需要的插件。默认值已调整为最佳的开箱即用体验。
当链接到 Qt 的共享/动态构建或链接库时,此变量当前无效。它可以用于稍后部署动态插件。
包含 Qt 的当前版本。
包含 Qt 的当前主要版本。
包含 Qt 的当前次要版本。
包含 Qt 的当前补丁版本。
仅限 Windows。指定目标的 Windows 资源文件 (.rc) 的名称。
仅限 Windows。指定应在生成的 .rc 文件中指定的代码页。这仅在设置了 VERSION 或 RC_ICONS 变量且未设置 RC_FILE 和 RES_FILE 变量时使用。
仅限 Windows。qmake 将此变量的值添加为 RC 预处理器宏(-d 选项)。 如果未设置此变量,则使用 DEFINES 变量代替。
RC_DEFINES += USE_MY_STUFF
仅限 Windows。 指定应包含在生成的 .rc 文件中的图标。 这仅在未设置 RC_FILE 和 RES_FILE 变量时使用。
仅限 Windows。指定应在生成的 .rc 文件中指定的语言。这仅在设置了 VERSION 或 RC_ICONS 变量且未设置 RC_FILE 和 RES_FILE 变量时使用。
指定传递给 Windows 资源编译器的包含路径。
指定 Qt 资源编译器(Qt Resource Compiler) 输出文件的目录。
unix:RCC_DIR = ../myproject/resources
win32:RCC_DIR = c:/myproject/resources
指定作为条件进行评估的值列表。 如果任何条件为false,qmake 将在构建时跳过此项目(及其子目录)。
注意:如果想在构建时跳过项目或子项目,则建议使用 requires() 函数。
指定目标的资源收集文件 (qrc) 的名称。
仅限 Windows。指定此目标的 Windows 资源编译器输出文件的名称。
指定项目中所有源文件的名称。
此变量与 subdirs 模板一起使用时,指定包含需要构建的项目部分的所有子目录或项目文件的名称。使用此变量指定的每个子目录都必须包含其自己的项目文件。
建议每个子目录中的项目文件与子目录本身具有相同的基本名称,因为这样可以省略文件名。 例如,如果子目录名为 myapp,则该目录中的项目文件应名为 myapp.pro。
或者可以指定任何目录中 .pro 文件的相对路径。强烈建议仅指定当前项目的父目录或其子目录中的路径。
例如:
SUBDIRS = kernel \
tools \
myapp
如果需要确保以特定顺序构建子目录,请在相关的 SUBDIRS 元素上使用 .depends 修饰符。例如:
SUBDIRS += my_executable my_library tests doc
my_executable.depends = my_library
tests.depends = my_executable
上面的配置确保 my_library 在 my_executable 之前构建,而 my_executable 在 tests 之前构建。 但是,doc 可以与其他子目录并行构建,从而加快构建过程。
注意:可以列出多个依赖项,它们都将在依赖它们的目标之前构建。
注意:不鼓励使用 CONFIG += ordered,因为它会减慢多核构建的速度。与上面显示的示例不同,即使它们没有依赖关系,所有构建也将按顺序发生。
除了定义构建顺序之外,还可以通过为 SUBDIRS 元素提供额外的修饰符来修改 SUBDIRS 的默认行为。
支持的修饰符是:
例如,定义两个子目录,它们都位于与 SUBDIRS 值不同的目录中,并且其中一个子目录必须在另一个子目录之前构建:
SUBDIRS += my_executable my_library
my_executable.subdir = app
my_executable.depends = my_library
my_library.subdir = lib
指定目标文件的名称。默认情况下包含项目文件的基本名称。
例如:
TEMPLATE = app
TARGET = myapp
SOURCES = main.cpp
上面的项目文件将在 unix 上生成一个名为 myapp 的可执行文件,在 Windows 上生成一个名为 myapp.exe 的可执行文件。
指定 TARGET 的扩展名。
使用主版本号指定 TARGET 的扩展。
使用版本号指定 TARGET 的扩展名。
指定生成项目时使用的模板名称。
允许的值为:
指定包含用户界面文本翻译成非母语的翻译 (.ts) 文件列表。
TRANSLATIONS 中的翻译文件将由 lrelease 和 Using lupdate 工具处理。如果只想 lrelease 处理文件,请使用 EXTRA_TRANSLATIONS。
可以使用 CONFIG += lrelease 在构建期间自动编译文件,并使用 CONFIG += lrelease embed_translations 使它们在 Qt 资源系统中可用。
指定应放置 uic 中的所有中间文件的目录。
如果指定了应用程序模板,则指定应用程序的版本号。
如果指定了 lib 模板,则指定库的版本号。
在 Windows 上,如果未设置 RC_FILE 和 RES_FILE 变量,则触发 .rc 文件的自动生成。生成的 .rc 文件将包含 FILEVERSION 和 PRODUCTVERSION 条目,其中包含主要、次要、补丁级别和内部版本号。每个数字必须在 0 到 65535 的范围内。
仅限 Windows。指定版本号,Windows 链接器通过 -VERSION 选项将其放入 .exe 或 .dll 文件的标头中。只能指定主要和次要版本。如果未设置 VERSION_PE_HEADER,则从 VERSION(如果设置)回退到主要和次要版本。
VERSION_PE_HEADER = 1.2
如果指定了 lib 模板,则指定库的主要版本号。
如果指定了 lib 模板,则指定库的次要版本号。
如果指定了 lib 模板,则指定库的补丁版本号。
告诉 qmake 在哪里搜索它无法打开的文件。 例如,如果 qmake 查找 SOURCES 并找到无法打开的条目,则它会查看整个 VPATH 列表以查看是否可以自行找到该文件。
指定目标 Windows 版本。这对应于 vcxproj 文件中的标记 WindowsTargetPlatformVersion。
在桌面 Windows 上,默认值是环境变量 WindowsSDKVersion 的值。
指定 Windows 目标平台的最低版本。这对应于 vcxproj 文件中的标记 WindowsTargetPlatformMinVersion。
默认为 WINDOWS_TARGET_PLATFORM_VERSION。
指定要包含在项目中的 Yacc 源文件列表。 所有依赖项、头文件和源文件都将自动包含在项目中。
YACCSOURCES = moc.y
包含正在使用的项目文件的路径。
例如,以下行导致将项目文件的位置写入控制台:
message($$_PRO_FILE_)
注意:不要试图覆盖这个变量的值。
包含包含正在使用的项目文件的目录的路径。
例如,以下行会导致将包含项目文件的目录的位置写入控制台:
message($$_PRO_FILE_PWD_)
注意:不要试图覆盖这个变量的值。