qmake:变量手册

【Qt】从C++11到C++20:Qt版本与现代C++特性的深度适配指南 本文深入探讨了Qt框架从C++11到C++20的版本演进与现代C++特性的深度适配。详细解析了Qt 5.x到Qt 6.x系列对C++标准的支持变化,包括C++11的Lambda表达式、C++17的结构化绑定以及C++20的协程等关键特性在Qt中的实战应用。通过构建系统配置指南和版本迁移策略,帮助开发者高效利用现代C++提升Qt开发效率与性能。 阅读详情
AI摘要

博客介绍了qmake的基本行为受变量声明影响,详细列举了如ANDROID_ABIS、ANDROID_API_VERSION等200多个变量。部分变量仅适用于Android目标或模块,可指定ABI列表、API级别、应用参数等,还说明了项目配置、模板、目标文件等相关变量的作用。

qmake 的基本行为受定义每个项目构建过程的变量声明的影响。

1、ANDROID_ABIS

此变量仅适用于 Android 目标。

指定 Android 目标 ABI 列表。有效值为:armeabi-v7a、arm64-v8a、x86、x86_64。如:

 qmake ANDROID_ABIS="armeabi-v7a arm64-v8a"

2、ANDROID_API_VERSION

此变量仅适用于 Android 目标。指定 Android API 级别编号。

3、ANDROID_APPLICATION_ARGUMENTS

此变量仅适用于 Android 目标。

使用带有“android.app.arguments”标签的 AndroidManifest.xml 为 Android 应用程序指定额外的命令行参数。

4、ANDROID_BUNDLED_JAR_DEPENDENCIES

此变量仅适用于 Android 模块。以 .jar 格式指定模块使用的预捆绑依赖项列表,例如:

 ANDROID_BUNDLED_JAR_DEPENDENCIES += jar/Qt6Android.jar

5、ANDROID_DEPLOYMENT_DEPENDENCIES

此变量仅适用于 Android 目标。

默认情况下,androiddeployqt 将检测应用程序的依赖项。 但是,由于无法检测到插件的运行时使用情况,因此可能会出现误报,因为应用程序可能依赖于任何潜在依赖项的插件。 如果您想最小化 APK 的大小,可以使用此变量覆盖自动检测。这将包含需要包含的所有 Qt 文件的列表,以及相对于 Qt 安装根目录的路径。

6、ANDROID_DEPLOYMENT_SETTINGS_FILE

此变量仅适用于 Android 目标。

指定 androiddeployqt 和 androidtestrunner 所需的 android-deployment-settings.json 文件的路径。这会覆盖 qmake 生成的设置文件的路径,因此您必须确保提供有效的设置文件。

7、ANDROID_EXTRA_LIBS

此变量仅适用于 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

8、ANDROID_EXTRA_PLUGINS

此变量仅适用于 Android 目标。

指定应用程序必须捆绑但无法通过资源系统交付的 C++ 插件或资源的路径,例如 QML 插件。有了这个变量,androiddeployqt 将确保一切都被正确打包和部署。

此变量必须指向构建额外插件的目录。 此外,构建目录结构必须遵循类似于Qt插件的命名约定,即plugins/<plugin name>。

插件库的名称格式应为 libplugins_<type>_<name>_<abi>.so。为了实现这一点,插件 pro 文件可以定义如下:

  1. TEMPLATE = lib
  2. CONFIG += plugin
  3. PLUGIN_TYPE = imageformats
  4. DESTDIR = $$top_builddir/plugins/myplugin
  5. 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

9、ANDROID_FEATURES

此变量仅适用于 Android 模块。指定模块的功能列表:

 ANDROID_FEATURES += android.hardware.location.gps

10、ANDROID_LIB_DEPENDENCIES

此变量仅适用于 Android 模块。它指定了模块使用的预构建依赖项列表,例如:

 ANDROID_LIB_DEPENDENCIES += plugins/libplugins_platforms_qtforandroid.so

11、ANDROID_MIN_SDK_VERSION

此变量仅适用于 Android 目标。

指定项目的最低 Android API 级别。 默认情况下,此变量设置为 API 级别 23。

12、ANDROID_PACKAGE_SOURCE_DIR

此变量仅适用于 Android 目标。

指定自定义 Android 包模板的路径。 Android 包模板包含:

  • AndroidManifest.xml 文件
  • build.gradle 文件和其他 Gradle 脚本
  • res/values/libs.xml 文件

此变量指定的路径可以包含 src 目录下的自定义 Java 类。默认情况下,androiddeployqt 工具将应用程序模板从 Qt for Android 安装路径复制到项目的构建目录中,然后它复制此变量指定的路径的内容,覆盖任何现有文件。

13、ANDROID_PERMISSIONS

此变量仅适用于 Android 模块。指定模块的权限列表:

ANDROID_PERMISSIONS += android.permission.ACCESS_FINE_LOCATION

14、ANDROID_TARGET_SDK_VERSION

此变量仅适用于 Android 目标。

指定项目的目标 Android API 级别。 默认情况下,此变量设置为 API 级别 29。

15、ANDROID_VERSION_CODE

此变量仅适用于 Android 目标。指定应用程序的版本号。

16、ANDROID_VERSION_NAME

此变量仅适用于 Android 目标。设置应用程序版本的字符串。


17、CONFIG

指定项目配置和编译器选项。这些值由 qmake 内部识别并具有特殊含义。

以下 CONFIG 值控制编译器和链接器标志:

  • release:项目在发布模式下构建。如果还指定了 debug,则最后一个生效。
  • debug:项目在调试模式下构建。
  • debug_and_release:项目在调试和发布模式下构建。
  • debug_and_release_target:此选项是默认设置的。如果还设置了 debug_and_release,则 debug 和 release 构建最终位于单独的 debug 和 release 目录中。
  • build_all:如果指定了 debug_and_release,则默认以debug 和release 两种模式构建项目。
  • autogen_precompile_source:自动生成一个 .cpp 文件,其中包含 .pro 文件中指定的预编译头文件。
  • ordered:当使用 subdirs 模板时,此选项指定列出的目录应该按照它们给出的顺序进行处理。注意:不鼓励使用这个选项。
  • precompile_header:支持在项目中使用预编译头。
  • precompile_header_c:(仅限 MSVC)支持使用 C 文件的预编译头。
  • warn_on:编译器应该输出尽可能多的警告。如果同时指定了warn_off,则最后一个生效。
  • warn_off:编译器应该尽可能少地输出警告。
  • exceptions:启用异常支持。默认设置。
  • exceptions_off:禁用异常支持。
  • ltcg:启用链接时间代码生成。 此选项默认关闭。
  • rtti:启用 RTTI 支持。默认情况下,使用编译器默认值。
  • rtti_off:禁用RTTI 支持。默认情况下,使用编译器默认值。
  • stl:启用STL 支持。默认情况下,使用编译器默认值。
  • stl_off:禁用STL 支持。默认情况下,使用编译器默认值。
  • thread:启用线程支持。当 CONFIG 包含 qt 时启用此功能,这是默认设置。
  • no_utf8_source:指定项目的源文件不使用 UTF-8 编码。若不启用此标志则使用编译器默认值。
  • hide_symbols:将二进制文件中符号的默认可见性设置为隐藏。默认情况下,使用编译器默认值。
  • c99:启用 C99 支持。如果编译器不支持 C99 或无法选择 C ​​标准,则此选项无效。默认情况下,使用编译器默认值。
  • c11:启用 C11 支持。如果编译器不支持 C11 或无法选择 C ​​标准,则此选项无效。默认情况下,使用编译器默认值。
  • strict_c:禁用对 C 编译器扩展的支持。 默认情况下,处于启用状态。
  • c++11:启用 C++11 支持。如果编译器不支持 C++11 或无法选择 C++ 标准,则此选项无效。默认情况下,支持处于启用状态。
  • c++14:启用 C++14 支持。如果编译器不支持 C++14 或无法选择 C++ 标准,则此选项无效。默认情况下,支持处于启用状态。
  • c++17:启用 C++17 支持。如果编译器不支持 C++17 或无法选择 C++ 标准,则此选项无效。默认情况下,支持处于启用状态。
  • c++20:启用 C++20 支持。如果编译器不支持 C++20 或无法选择 C++ 标准,则此选项无效。默认情况下,支持处于禁用状态。
  • c++latest:启用对编译器支持的最新 C++ 语言标准的支持。 默认情况下,此选项处于禁用状态。
  • strict_c++:禁用对 C++ 编译器扩展的支持。默认情况下,处于启用状态。
  • depend_includepath:将 INCLUDEPATH 的值附加到 DEPENDPATH 。默认启用设置。
  • lrelease:对 TRANSLATIONS 和 EXTRA_TRANSLATIONS 中列出的所有文件运行 lrelease。 如果未设置 embed_translations,请将生成的 .qm 文件安装到 QM_FILES_INSTALL_PATH 中。 使用 QMAKE_LRELEASE_FLAGS 向 lrelease 调用添加选项。 默认不设置。
  • embed_translations:将 lrelease 生成的翻译嵌入到可执行文件中,在 QM_FILES_RESOURCE_PREFIX 下。还需要设置 lrelease。默认不设置。
  • create_libtool:为当前构建的库创建一个 libtool .la 文件。
  • create_pc:为当前构建的库创建一个 pkg-config .pc 文件。
  • no_batch:关闭 NMake 批处理规则或推理规则的生成。
  • skip_target_version_ext:禁止在 Windows 上附加到 DLL 文件名的自动版本号。
  • Suppress_vcproj_warnings:禁止 VS 项目生成器的警告。
  • windeployqt:链接后自动调用windeployqt,并将输出添加为部署项。
  • dont_recurse:支持当前子项目的 qmake 递归。
  • no_include_pwd:不将当前目录添加到 INCLUDEPATHS。
  • compile_included_sources:默认情况下,qmake 不编译包含在其他源文件中的源文件。此选项禁用此行为。

链接库时,qmake 依赖于底层平台来了解该库链接的其他库。如果是静态链接,除非使用以下 CONFIG 选项,否则 qmake 将不会获得相应信息:

  • create_prl:此选项使 qmake 能够跟踪依赖项(其他库)。 启用此选项后,qmake 将创建一个扩展名为 .prl 的文件,该文件将保存有关库的元信息。
  • link_prl:启用此选项后,qmake 将处理应用程序链接的所有库并查找它们的元信息。
  • no_install_prl:此选项禁用为生成的 .prl 文件生成安装规则。

注意:构建静态库时需要 create_prl 选项,而使用静态库时需要 link_prl 选项。

以下选项定义应用程序或库类型:

  • qt:目标是 Qt 应用程序或库,需要 Qt 库和头文件。Qt 库的正确包含和库路径将自动添加到项目中。这是默认定义的。
  • x11:目标是 X11 应用程序或库。正确的包含路径和库将自动添加到项目中。
  • windows:目标是一个 Win32 窗口应用程序。正确的包含路径、编译器标志和库将自动添加到项目中。
  • console:目标是一个 Win32 控制台应用程序。正确的包含路径、编译器标志和库将自动添加到项目中。
  • cmdline:目标是一个跨平台的命令行应用程序。在 Windows 上,这意味着 CONFIG += console。在 macOS 上,这意味着 CONFIG -= app_bundle。
  • shared、dll:目标是共享对象/DLL。 正确的包含路径、编译器标志和库将自动添加到项目中。dll也可以在所有平台上使用。将创建具有目标平台(.dll 或 .so)的适当后缀的共享库文件。
  • static、staticlib:目标是一个静态库(仅限 lib)。正确的编译器标志将自动添加到项目中。
  • plugin:目标是一个插件(仅限 lib)。 这也启用了 dll。
  • designer:目标是 Qt Designer 的插件。

这些选项仅定义 Windows 上的特定功能:

  • flat:当使用 vcapp 模板时,这会将所有源文件放入源组并将头文件放入头组,而不管它们驻留在哪个目录中。关闭此选项将根据目录对源/头组中的文件进行分组放置。这是默认开启的。
  • embed_manifest_dll:在作为库项目一部分创建的 DLL 中嵌入清单文件。
  • embed_manifest_exe:在作为应用程序项目的一部分创建的 EXE 中嵌入清单文件。

以下选项仅在 macOS 上生效:

  • app_bundle:将可执行文件放入一个包中(这是默认设置)。
  • lib_bundle:将库放入库包中。
  • plugin_bundle:将插件放入插件包中。Xcode 项目生成器不支持此值。

以下选项仅在 Linux/Unix 平台上生效:

  • largefile:包括对大文件的支持。
  • separate_debug_info:将库的调试信息放在单独的文件中。

18、DEFINES

qmake 将此变量的值添加为编译器 C 预处理器宏。

19、DEFINES_DEBUG

为调试配置指定预处理器定义。加载项目后,此变量的值会添加到 DEFINES 中。

20、DEFINES_RELEASE

为发布配置指定预处理器定义。加载项目后,此变量的值会添加到 DEFINES 中。

对于 MSVC mkspecs,此变量默认包含值 NDEBUG。

21、DEF_FILE

此变量仅在 Windows 上使用应用程序模板时使用。指定要包含在项目中的 .def 文件。

22、DEPENDPATH

指定 qmake 要扫描的目录列表,以确定依赖关系。当 qmake 抓取在源代码中 #include 的头文件时,将使用此变量。

23、DESTDIR

指定放置目标文件的位置。

24、DISTFILES

指定要包含在 dist 目标中的文件列表。此功能仅受 UnixMake 规范支持。

25、DLLDESTDIR

注意:此变量仅适用于 Windows 目标。指定复制目标 dll 的位置。

26、EXTRA_TRANSLATIONS

指定包含用户界面文本翻译成非母语的翻译 (*.ts) 文件列表。

与 TRANSLATIONS 相比,EXTRA_TRANSLATIONS 中的翻译文件将仅由 lrelease 处理,而不是由 lupdate 处理。

可以使用 CONFIG += lrelease 在构建期间自动编译文件,并使用 CONFIG += lrelease embed_translations 使它们在 Qt 资源系统中可用。

27、FORMS

指定在编译前由 uic 处理的 UI 文件。构建这些 UI 文件所需的所有依赖项、头文件和源文件都将自动添加到项目中。

28、GUID

指定在 .vcproj 文件中设置的 GUID。GUID 通常是随机确定的。如果需要固定的 GUID,则可以使用此变量进行设置。

此变量仅特定于 .vcproj 文件; 否则将被忽略。

29、HEADERS

定义项目的头文件。

qmake 会自动检测头文件中的类是否需要 moc,并将相应的依赖项和文件添加到项目中,用于生成和链接 moc 文件。

30、ICON

此变量仅用于在 Mac OS 上设置应用程序图标。

31、IDLSOURCES

此变量仅在 Windows 上用于 Visual Studio 项目生成,以将指定文件放在 Generated Files 文件夹中。

32、INCLUDEPATH

指定编译项目时应搜索的#include 目录。

33、INSTALLS

指定执行 make install 或类似安装过程时将安装的资源列表。列表中的每个项目通常都定义有提供有关安装位置信息的属性。

例如,以下 target.path 定义描述了构建目标的安装位置,并且 INSTALLS 分配将构建目标添加到要安装的现有资源列表中:

  1. target.path += $$[QT_INSTALL_PLUGINS]/imageformats
  2. INSTALLS += target

INSTALLS 有一个 .CONFIG 成员,可以采用几个值:

  • no_check_exist:如果未设置,qmake 会查看要安装的文件是否实际存在。如果这些文件不存在,qmake 不会创建安装规则。
  • nostrip:如果设置,调试信息将保留在二进制文件中。
  • executable:在 Unix 上,这会设置可执行标志。
  • no_build:当进行 make install 并且还没有构建项目时,首先构建项目,然后安装。 如果不希望出现此行为,请设置此配置值以确保不会将构建目标添加为安装目标的依赖项。
  • no_default_installA:项目有一个顶级项目目标,当执行 make install 时,所有内容都已安装。但是,如果有一个设置了此配置值的安装目标,则默认情况下不会安装它。要安装它必须明确地执行 make install_<file>。

34、JAVA_HOME

此变量仅对 Android 目标有用。指定用于构建项目的JDK/OpenJDK 安装路径。

35、LIBS

指定要链接到项目中的库列表。如果使用 Unix -l(库)和 -L(库路径)标志,qmake 会在 Windows 上正确处理库(即,将库的完整路径传递给链接器)。 该库必须存在以便 qmake 找到 -l lib 所在的目录。

如:

  1. unix:LIBS += -L/usr/local/lib -lmath
  2. win32:LIBS += c:/mylibs/math.lib

36、LIBS_PRIVATE

指定要私下链接到项目中的库列表。此变量的行为与 LIBS 相同,只是为 Unix 构建的共享库项目不在其链接接口中公开这些依赖项。

这样做的结果是,如果项目 C 依赖于库 B 而后者私下依赖于库 A,但 C 也想直接使用来自 A 的符号,则需要显式链接到 A。 换句话说,私有链接的库在构建时不会传递公开。

37、MAKEFILE

指定生成的 Makefile 的名称。

38、MAKEFILE_GENERATOR

指定生成 Makefile 时要使用的 Makefile 生成器的名称。

39、MSVCPROJ_*

这些变量由 qmake 内部处理,不应修改或使用。

40、MOC_DIR

指定应放置所有中间 moc 文件的目录。

41、OBJECTIVE_HEADERS

定义项目的 Objective-C++ 头文件。

qmake 会自动检测头文件中的类是否需要 moc,并将相应的依赖项和文件添加到项目中,用于生成和链接 moc 文件。

这类似于 HEADERS 变量,但会让生成的 moc 文件使用 Objective-C++ 编译器进行编译。

42、OBJECTS

此变量是从 SOURCES 变量自动填充的。每个源文件的扩展名被替换为 .o (Unix) 或 .obj (Win32)。 可以将对象添加到列表中。

43、OBJECTS_DIR

指定应放置所有中间对象的目录。

44、PRECOMPILED_HEADER

表示用于创建预编译头文件的头文件,以提高项目的编译速度。 当前仅在某些平台上支持预编译头文件(Windows - 所有 MSVC 项目类型,Apple - Xcode、Makefile、Unix - gcc 3.3 及更高版本)。

45、PWD

指定指向包含正在解析的当前文件的目录的完整路径。这对于在编写项目文件以支持影子构建时引用源树中的文件很有用。注意:不要试图覆盖这个变量的值。

46、OUT_PWD

指定通向 qmake 放置生成的 Makefile 的目录完整路径。注意:不要试图覆盖此变量的值。

47、QM_FILES_RESOURCE_PREFIX

指定资源系统中 .qm 文件将通过 CONFIG += embed_translations 提供的目录。默认为:/i18n/。

48、QM_FILES_INSTALL_PATH

指定由 CONFIG += lrelease 生成的目标目录 .qm 文件将安装到的连接。如果设置了 CONFIG += embed_translations,则没有任何影响。

49、QMAKE

指定 qmake 程序本身的名称并放置在生成的 Makefile 中。

50、QMAKESPEC

一个系统变量,包含生成 Makefile 时使用的 qmake 配置的完整路径。该变量的值是自动计算的。注意:不要试图覆盖这个变量的值。

51、QMAKE_AR_CMD

此变量仅用于 Unix 平台。指定创建共享库时要执行的命令。

52、QMAKE_BUNDLE_DATA

此变量仅用于 macOS、iOS、tvOS 和 watchOS。

指定将与库包一起安装的数据,通常用于指定头文件的集合。

例如,以下几行将 path/to/header_one.h 和 path/to/header_two.h 添加到包含有关框架提供的标头信息的组中:

  1. FRAMEWORK_HEADERS.version = Versions
  2. FRAMEWORK_HEADERS.files = path/to/header_one.h path/to/header_two.h
  3. FRAMEWORK_HEADERS.path = Headers
  4. QMAKE_BUNDLE_DATA += FRAMEWORK_HEADERS

最后一行将有关标头的信息添加到将与库包一起安装的资源集合中。

将 lib_bundle 选项添加到 CONFIG 变量时,会创建库包。

53、QMAKE_BUNDLE_EXTENSION

此变量仅用于 macOS、iOS、tvOS 和 watchOS。

指定要用于库包的扩展。这允许使用自定义扩展名而不是标准的 .framework 目录名称扩展名创建框架。

例如,以下定义将生成带有 .myframework 扩展名的框架:

 QMAKE_BUNDLE_EXTENSION = .myframework

54、QMAKE_CC

指定在构建包含 C 源代码的项目时将使用的 C 编译器。只需要指定编译器可执行文件的文件名,只要它在处理 Makefile 时位于 PATH 变量中包含的路径上即可。

55、QMAKE_CFLAGS

指定用于构建项目的 C 编译器标志。可以通过分别修改 QMAKE_CFLAGS_DEBUG 和 QMAKE_CFLAGS_RELEASE 变量来调整特定于调试和发布模式的标志。

56、QMAKE_CFLAGS_DEBUG

为调试版本指定 C 编译器标志。

57、QMAKE_CFLAGS_RELEASE

为发布版本指定 C 编译器标志。

58、QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO

为在 CONFIG 中设置 force_debug_info 的发布版本指定 C 编译器标志。

59、QMAKE_CFLAGS_SHLIB

此变量仅用于 Unix 平台。指定用于创建共享库的编译器标志。

60、QMAKE_CFLAGS_THREAD

指定用于创建多线程应用程序的编译器标志。

61、QMAKE_CFLAGS_WARN_OFF

此变量仅在设置了 warn_off 的 CONFIG 选项时使用。

62、QMAKE_CFLAGS_WARN_ON

此变量仅在设置了 warn_on 的 CONFIG 选项时使用。

63、QMAKE_CLEAN

指定生成的文件(例如,通过 moc 和 uic)和要由 make clean 删除的目标文件的列表。

64、QMAKE_CXX

指定在构建包含 C++ 源代码的项目时将使用的 C++ 编译器。只需要指定编译器可执行文件的文件名,只要它在处理 Makefile 时位于 PATH 变量中包含的路径上即可。

65、QMAKE_CXXFLAGS

指定用于构建项目的 C++ 编译器标志。可以通过分别修改 QMAKE_CXXFLAGS_DEBUG 和 QMAKE_CXXFLAGS_RELEASE 变量来调整特定于调试和发布模式的标志。

66、QMAKE_CXXFLAGS_DEBUG

为调试版本指定 C++ 编译器标志。

67、QMAKE_CXXFLAGS_RELEASE

为发布版本指定 C++ 编译器标志。

68、QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO

为在 CONFIG 中设置 force_debug_info 的发布版本指定 C++ 编译器标志。

69、QMAKE_CXXFLAGS_SHLIB

指定用于创建共享库的 C++ 编译器标志。

70、QMAKE_CXXFLAGS_THREAD

指定用于创建多线程应用程序的 C++ 编译器标志。

71、QMAKE_CXXFLAGS_WARN_OFF

指定用于抑制编译器警告的 C++ 编译器标志。

72、QMAKE_CXXFLAGS_WARN_ON

指定用于生成编译器警告的 C++ 编译器标志。

73、QMAKE_DEVELOPMENT_TEAM

此变量仅用于 macOS、iOS、tvOS 和 watchOS。用于签署证书和配置文件的开发团队的标识符。

74、QMAKE_DISTCLEAN

指定要由 make distclean 删除的文件列表。

75、QMAKE_EXTENSION_SHLIB

包含共享库的扩展。注意:更改扩展名的特定于平台的变量会覆盖此变量的内容。

76、QMAKE_EXTENSION_STATICLIB

包含共享静态库的扩展。

77、QMAKE_EXT_MOC

包含用于包含的 moc 文件的扩展名。

78、QMAKE_EXT_UI

包含用于 Qt Designer UI 文件的扩展名。

79、QMAKE_EXT_PRL

包含用于创建的 PRL 文件的扩展名。

80、QMAKE_EXT_LEX

包含用于提供给 Lex 的文件的扩展名。

81、QMAKE_EXT_YACC

包含用于提供给 Yacc 的文件的扩展名。

82、QMAKE_EXT_OBJ

包含用于生成的目标文件的扩展名。

83、QMAKE_EXT_CPP

包含应解释为 C++ 源代码的文件的后缀。

84、QMAKE_EXT_H

包含应解释为 C 头文件的文件的后缀。

85、QMAKE_EXTRA_COMPILERS

指定附加编译器或预处理器的列表。

86、QMAKE_EXTRA_TARGETS

指定附加 qmake 目标的列表。

87、QMAKE_FAILED_REQUIREMENTS

包含失败的需求列表。这个变量的值是由qmake设置的,不能修改。

88、QMAKE_FRAMEWORK_BUNDLE_NAME

此变量仅用于 macOS、iOS、tvOS 和 watchOS。

此变量包含要用于构建(*.framework)的框架的名称。

默认情况下,此变量包含与 TARGET 变量相同的值。

89、QMAKE_FRAMEWORK_VERSION

此变量仅用于 macOS、iOS、tvOS 和 watchOS。

对于构建目标是 macOS、iOS、tvOS 或 watchOS 框架的项目,此变量用于指定将应用于构建的框架的版本号。

默认情况下,此变量包含与 VERSION 变量相同的值。

90、QMAKE_HOST

提供有关运行 qmake 的主机的信息。

  • .arch:主机架构
  • .os:主机操作系统
  • .cpu_count:可用 CPU 数量
  • .name:主机名
  • .version:主机操作系统版本号
  • .version_string:主机操作系统版本字符串
  1. win32-g++:contains(QMAKE_HOST.arch, x86_64):{
  2. message("Host is 64bit")
  3. ...
  4. }

91、QMAKE_INCDIR

指定附加到 INCLUDEPATH 的系统头路径列表。

92、QMAKE_INCDIR_EGL

指定在构建具有 OpenGL/ES 或 OpenVG 支持的目标时要添加到 INCLUDEPATH 的 EGL 头文件的位置。

93、QMAKE_INCDIR_OPENGL

指定在构建具有 OpenGL 支持的目标时要添加到 INCLUDEPATH 的 OpenGL 头文件的位置。

如果 OpenGL 实现使用 EGL(大多数 OpenGL/ES 系统),则可能还需要设置 QMAKE_INCDIR_EGL。

94、QMAKE_INCDIR_OPENGL_ES2

此变量指定在构建具有 OpenGL ES 2 支持的目标时要添加到 INCLUDEPATH 的 OpenGL 头文件的位置。

如果 OpenGL 实现使用 EGL(大多数 OpenGL/ES 系统),则可能还需要设置 QMAKE_INCDIR_EGL。

95、QMAKE_INCDIR_OPENVG

指定在构建具有 OpenVG 支持的目标时要添加到 INCLUDEPATH 的 OpenVG 头文件的位置。

如果 OpenVG 实现使用 EGL,则可能还需要设置 QMAKE_INCDIR_EGL。

96、QMAKE_INCDIR_X11

此变量仅用于 Unix 平台。

指定在构建 X11 目标时要添加到 INCLUDEPATH 的 X11 头文件路径的位置。

97、QMAKE_INFO_PLIST

此变量仅用于 macOS、iOS、tvOS 和 watchOS 平台。

指定要包含在 macOS、iOS、tvOS 和 watchOS 应用程序包中的属性列表文件 .plist 的名称。
在 .plist 文件中,您可以定义一些变量,qmake 将用相关值替换这些变量:以下略。

98、QMAKE_IOS_DEPLOYMENT_TARGET

此变量仅在 iOS 平台上使用。指定应用程序支持的最低硬性 iOS 版本。

99、QMAKE_IOS_LAUNCH_SCREEN

此变量仅在 iOS 平台上使用。指定应用程序使用的启动屏幕。如果未设置,则使用默认启动屏幕。

100、QMAKE_LFLAGS

指定传递给链接器的一组通用标志。如果您需要更改用于特定平台或项目类型的标志,请使用专用变量之一来代替此变量。

101、QMAKE_LFLAGS_CONSOLE

此变量仅在 Windows 上使用。指定用于构建控制台程序的链接器标志。

102、QMAKE_LFLAGS_DEBUG

指定调试版本的链接器标志。

103、QMAKE_LFLAGS_PLUGIN

指定用于构建插件的链接器标志。

104、QMAKE_LFLAGS_RPATH

此变量仅用于 Unix 平台。指定使用 QMAKE_RPATHDIR 中的值所需的链接器标志。

105、QMAKE_LFLAGS_REL_RPATH

指定在 QMAKE_RPATHDIR 中启用相对路径所需的链接器标志。

106、QMAKE_REL_RPATH_BASE

指定动态链接器理解为引用可执行文件或库的位置的字符串。

107、QMAKE_LFLAGS_RPATHLINK

指定使用 QMAKE_RPATHLINKDIR 中的值所需的链接器标志。

108、QMAKE_LFLAGS_RELEASE

指定发布版本的链接器标志。

109、QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO

为在 CONFIG 中设置 force_debug_info 的发布版本指定链接器标志。

110、QMAKE_LFLAGS_APP

指定用于构建应用程序的链接器标志。

111、QMAKE_LFLAGS_SHLIB

指定用于构建共享库的链接器标志。

112、QMAKE_LFLAGS_SONAME

指定用于设置共享对象名称的链接器标志,例如 .so 或 .dll。

113、QMAKE_LFLAGS_THREAD

指定用于构建多线程项目的链接器标志。

114、QMAKE_LFLAGS_WINDOWS

此变量仅在 Windows 上使用。指定用于构建 Windows GUI 项目(即非控制台应用程序)的链接器标志。

115、QMAKE_LIBDIR

指定所有项目的库搜索路径列表。要在项目文件中指定其他搜索路径,请使用 LIBS。

116、QMAKE_LIBDIR_POST

指定所有项目的系统库搜索路径列表。

117、QMAKE_LIBDIR_FLAGS

此变量仅用于 Unix 平台。指定所有带有 -L 前缀的库目录的位置。

118、QMAKE_LIBDIR_EGL

当 EGL 与 OpenGL/ES 或 OpenVG 一起使用时,指定 EGL 库目录的位置。

119、QMAKE_LIBDIR_OPENGL

指定 OpenGL 库目录的位置。

如果 OpenGL 实现使用 EGL(大多数 OpenGL/ES 系统),则可能还需要设置 QMAKE_LIBDIR_EGL。

120、QMAKE_LIBDIR_OPENVG

指定 OpenVG 库目录的位置。

如果 OpenVG 实现使用 EGL,则可能还需要设置 QMAKE_LIBDIR_EGL。

121、QMAKE_LIBDIR_X11

此变量仅用于 Unix 平台。指定 X11 库目录的位置。

122、QMAKE_LIBS

指定每个项目需要链接的附加库。要在项目文件中指定库,请改用 LIBS。

123、QMAKE_LIBS_PRIVATE

指定每个项目需要链接的其他私有库。

要在库项目文件中指定私有库,请改用 LIBS_PRIVATE。

124、QMAKE_LIBS_EGL

使用 OpenGL/ES 或 OpenVG 构建 Qt 时指定所有 EGL 库。通常的值是 -lEGL。

125、QMAKE_LIBS_OPENGL

指定所有 OpenGL 库。

如果 OpenGL 实现使用 EGL(大多数 OpenGL/ES 系统),则可能还需要设置 QMAKE_LIBS_EGL。

126、QMAKE_LIBS_OPENGL_ES1、QMAKE_LIBS_OPENGL_ES2

这些变量指定了 OpenGL ES 1 和 OpenGL ES 2 的所有 OpenGL 库。

如果 OpenGL 实现使用 EGL(大多数 OpenGL/ES 系统),则可能还需要设置 QMAKE_LIBS_EGL。

127、QMAKE_LIBS_OPENVG

指定所有 OpenVG 库。通常的值是 -lOpenVG。

一些 OpenVG 引擎是在 OpenGL 之上实现的。这将在配置时检测到,并且 QMAKE_LIBS_OPENGL 将隐式添加到 QMAKE_LIBS_OPENVG 链接 OpenVG 库的任何位置。

如果 OpenVG 实现使用 EGL,则可能还需要设置 QMAKE_LIBS_EGL。

128、QMAKE_LIBS_THREAD

此变量仅用于 Unix 平台。指定构建多线程目标时需要链接的所有库。

129、QMAKE_LIBS_X11

此变量仅用于 Unix 平台。指定所有 X11 库。

130、QMAKE_LIB_FLAG

如果指定了 lib 模板,则此变量不为空。

131、QMAKE_LINK

指定构建基于应用程序的项目时将使用的链接器。只需指定链接器可执行文件的文件名,只要它在处理 Makefile 时位于 PATH 变量中包含的路径上即可。

132、QMAKE_LINK_SHLIB_CMD

指定创建共享库时要执行的命令。

133、QMAKE_LN_SHLIB

指定在创建到共享库的链接时要执行的命令。

134、QMAKE_LRELEASE_FLAGS

通过 CONFIG += lrelease 启用时传递给 lrelease 的附加选项列表。

135、QMAKE_OBJECTIVE_CFLAGS

指定用于构建项目的目标 C/C++ 编译器标志。除了 QMAKE_CFLAGS 和 QMAKE_CXXFLAGS 之外,还使用这些标志。

136、QMAKE_POST_LINK

指定将 TARGET 链接在一起后要执行的命令。这个变量也不是 mally 为空,因此不执行任何操作。注意:这个变量对 Xcode 项目没有影响。

137、QMAKE_PRE_LINK

指定在将 TARGET 链接在一起之前要执行的命令。此变量通常为空,因此不会执行任何操作。注意:这个变量对 Xcode 项目没有影响。

138、QMAKE_PROJECT_NAME

此变量仅用于 Visual Studio 项目文件。

在为 IDE 生成项目文件时确定项目的名称。默认值为目标名称。

139、QMAKE_PROVISIONING_PROFILE

此变量仅用于 macOS、iOS、tvOS 和 watchOS。

有效配置文件的 UUID。与 QMAKE_DEVELOPMENT_TEAM 结合使用以指定供应配置文件。

140、QMAKE_MAC_SDK

在 macOS 上构建通用二进制文件时使用此变量。

141、QMAKE_MACOSX_DEPLOYMENT_TARGET

此变量仅在 macOS 平台上使用。指定应用程序支持的最低硬性 macOS 版本。

142、QMAKE_MAKEFILE

指定要创建的 Makefile 的名称。

143、QMAKE_QMAKE

包含 qmake 可执行文件的绝对路径。注意:不要试图覆盖这个变量的值。

144、QMAKE_RESOURCE_FLAGS

此变量用于自定义在使用它的每个构建规则中传递给资源编译器(Resource Compiler (rcc))的选项列表。

例如,以下行确保每次调用 rcc 时都将 -threshold 和 -compress 选项与特定值一起使用: 

 QMAKE_RESOURCE_FLAGS += -threshold 0 -compress 9

145、QMAKE_RPATHDIR

此变量仅用于 Unix 平台。

指定在链接时添加到可执行文件的库路径列表,以便在运行时优先搜索路径。

当指定了相对路径时,qmake 会将它们转换成动态链接器理解的与引用可执行文件或库的位置相关的形式。这仅受某些平台(当前基于 Linux 和 Darwin 的平台)支持,并且可以通过检查是否设置了 QMAKE_REL_RPATH_BASE 来检测。

146、QMAKE_RPATHLINKDIR

指定静态链接器的库路径列表以搜索共享库的隐式依赖项。

147、QMAKE_RUN_CC

指定构建对象所需的单个规则。

148、QMAKE_RUN_CC_IMP

指定构建对象所需的单个规则。

149、QMAKE_RUN_CXX

指定构建对象所需的单个规则。

150、QMAKE_RUN_CXX_IMP

指定构建对象所需的单个规则。

151、QMAKE_SONAME_PREFIX

如果已定义,则此变量的值将用作附加到已构建共享库的 SONAME 标识符的路径。SONAME 是动态链接器稍后用于引用库的标识符。通常,此引用可能是库名称或完整的库路径。在 macOS、iOS、tvOS 和 watchOS 上,可以使用以下占位符相对指定路径:

  • @rpath:扩展到当前进程可执行文件或引用库中由 LC_RPATH mach-o 命令定义的路径。
  • @executable_path:扩展到当前进程的可执行位置。
  • @loader_path:扩展到引用的可执行文件或库位置。

在大多数情况下,使用 @rpath 就足够了,推荐使用:

  1. # <project root>/project.pro
  2. QMAKE_SONAME_PREFIX = @rpath

但是,也可以使用不同的占位符或绝对路径来指定前缀,例如以下之一:

  1. # <project root>/project.pro
  2. QMAKE_SONAME_PREFIX = @executable_path/../Frameworks
  3. QMAKE_SONAME_PREFIX = @loader_path/Frameworks
  4. QMAKE_SONAME_PREFIX = /Library/Frameworks

152、QMAKE_TARGET

指定项目目标的名称。

153、QMAKE_TARGET_COMPANY

仅限 Windows。指定项目目标生产商。这在适用的情况下用于将公司名称放入应用程序的属性中(右键->属性->详细信息)。这仅在设置了 VERSION 或 RC_ICONS 变量且未设置 RC_FILE 和 RES_FILE 变量时使用。

154、QMAKE_TARGET_DESCRIPTION

仅限 Windows。指定项目目标的描述。这用于在适用的情况下将描述放入应用程序的属性中。这仅在设置了 VERSION 或 RC_ICONS 变量且未设置 RC_FILE 和 RES_FILE 变量时使用。

155、QMAKE_TARGET_COPYRIGHT

仅限 Windows。指定项目目标的版权信息。这用于在适用的情况下将版权信息放入应用程序的属性中。这仅在设置了 VERSION 或 RC_ICONS 变量且未设置 RC_FILE 和 RES_FILE 变量时使用。

156、QMAKE_TARGET_PRODUCT

仅限 Windows。指定项目目标的产品名称。这在适用的情况下用于将产品放入应用程序的属性中。这仅在设置了 VERSION 或 RC_ICONS 变量且未设置 RC_FILE 和 RES_FILE 变量时使用。

157、QMAKE_TARGET_ORIGINAL_FILENAME

仅限 Windows。指定项目目标的原始文件名。这在适用的情况下用于将原始文件名放入应用程序的属性中。这仅在设置了 VERSION 或 RC_ICONS 变量且未设置 RC_FILE 和 RES_FILE 变量时使用。

158、QMAKE_TARGET_INTERNALNAME

仅限 Windows。指定项目目标的内部名称。这在适用的情况下用于将内部名称放入应用程序的属性中。这仅在设置了 VERSION 或 RC_ICONS 变量且未设置 RC_FILE 和 RES_FILE 变量时使用。

159、QMAKE_TARGET_COMMENTS

仅限 Windows。指定项目目标的注释。这在适用的情况下用于将注释放入应用程序的属性中。这仅在设置了 VERSION 或 RC_ICONS 变量且未设置 RC_FILE 和 RES_FILE 变量时使用。

160、QMAKE_TARGET_TRADEMARKS

仅限 Windows。指定项目目标的商标信息;这在适用的情况下用于将商标信息放入应用程序的属性中。这仅在设置了 VERSION 或 RC_ICONS 变量且未设置 RC_FILE 和 RES_FILE 变量时使用。

161、QMAKE_MANIFEST

仅限 Windows。指定项目目标的清单文件。这仅在未设置 RC_FILE 和 RES_FILE 变量时使用。别忘了把 CONFIG 变量中的 embed_manifest_exe 和 embed_manifest_dll 去掉,否则会和编译器生成的冲突。

162、QMAKE_TVOS_DEPLOYMENT_TARGET

此变量仅在 tvOS 平台上使用。指定应用程序支持的 tvOS 最低硬版本。

163、QMAKE_UIC_FLAGS

此变量用于自定义在使用它的每个构建规则中传递给用户界面编辑器(uic)的选项列表。

164、QMAKE_WATCHOS_DEPLOYMENT_TARGET

此变量仅在 watchOS 平台上使用。指定应用程序支持的 watchOS 最低硬版本。

165、QML_IMPORT_MAJOR_VERSION

指定用于自动生成的 QML 类型注册的主要版本。

166、QML_IMPORT_MINOR_VERSION

自动注册 C++ 中定义的 QML 类型时,请使用此次要版本注册模块的附加版本。通常,要注册的次要版本是从元对象中推断出来的。

如果元对象未更改,并且您仍希望导入具有较新次要版本号的 QML 模块,则可以使用此变量。例如,MyModule 元对象在 1.1 级别,但您希望将模块导入为 1.3。

167、QML_IMPORT_VERSION

将 QML_IMPORT_MAJOR_VERSION 和 QML_IMPORT_MINOR_VERSION 指定为 <major>.<minor> 版本字符串。

168、QML_IMPORT_NAME

指定用于自动生成的 QML 类型注册的模块名称。

169、QML_FOREIGN_METATYPES

指定在生成 qmltypes 文件时要考虑的具有元类型的更多 JSON 文件。当外部库提供直接或作为其他类型的基本类型或属性公开给 QML 的类型时,请使用此选项。

170、QT

指定项目使用的 Qt 模块。

在 C++ 实现级别,使用 Qt 模块使其头文件可用于包含并使其链接到二进制文件。

默认情况下,QT 包含 core 和 gui,确保无需进一步配置即可构建标准的 GUI 应用程序。

如果要构建没有 Qt GUI 模块的项目,则需要使用“-=”运算符排除 gui 值。

以下代码将导致构建一个最小的 Qt 项目:

 QT -= gui

171、QTPLUGIN

指定要与应用程序链接的静态 Qt 插件的名称列表,以便它们可用作内置资源。

qmake 会自动添加使用的 Qt 模块通常需要的插件。默认值已调整为最佳的开箱即用体验。

当链接到 Qt 的共享/动态构建或链接库时,此变量当前无效。它可以用于稍后部署动态插件。

172、QT_VERSION

包含 Qt 的当前版本。

173、QT_MAJOR_VERSION

包含 Qt 的当前主要版本。

174、QT_MINOR_VERSION

包含 Qt 的当前次要版本。

175、QT_PATCH_VERSION

包含 Qt 的当前补丁版本。

176、RC_FILE

仅限 Windows。指定目标的 Windows 资源文件 (.rc) 的名称。

177、RC_CODEPAGE

仅限 Windows。指定应在生成的 .rc 文件中指定的代码页。这仅在设置了 VERSION 或 RC_ICONS 变量且未设置 RC_FILE 和 RES_FILE 变量时使用。

178、RC_DEFINES

仅限 Windows。qmake 将此变量的值添加为 RC 预处理器宏(-d 选项)。 如果未设置此变量,则使用 DEFINES 变量代替。

 RC_DEFINES += USE_MY_STUFF

179、RC_ICONS

仅限 Windows。 指定应包含在生成的 .rc 文件中的图标。 这仅在未设置 RC_FILE 和 RES_FILE 变量时使用。

180、RC_LANG

仅限 Windows。指定应在生成的 .rc 文件中指定的语言。这仅在设置了 VERSION 或 RC_ICONS 变量且未设置 RC_FILE 和 RES_FILE 变量时使用。

181、RC_INCLUDEPATH

指定传递给 Windows 资源编译器的包含路径。

182、RCC_DIR

指定 Qt 资源编译器(Qt Resource Compiler) 输出文件的目录。

  1. unix:RCC_DIR = ../myproject/resources
  2. win32:RCC_DIR = c:/myproject/resources

183、REQUIRES

指定作为条件进行评估的值列表。 如果任何条件为false,qmake 将在构建时跳过此项目(及其子目录)。

注意:如果想在构建时跳过项目或子项目,则建议使用 requires() 函数。

184、RESOURCES

指定目标的资源收集文件 (qrc) 的名称。

185、RES_FILE

仅限 Windows。指定此目标的 Windows 资源编译器输出文件的名称。 

186、SOURCES

指定项目中所有源文件的名称。

187、SUBDIRS

此变量与 subdirs 模板一起使用时,指定包含需要构建的项目部分的所有子目录或项目文件的名称。使用此变量指定的每个子目录都必须包含其自己的项目文件。

建议每个子目录中的项目文件与子目录本身具有相同的基本名称,因为这样可以省略文件名。 例如,如果子目录名为 myapp,则该目录中的项目文件应名为 myapp.pro。

或者可以指定任何目录中 .pro 文件的相对路径。强烈建议仅指定当前项目的父目录或其子目录中的路径。

例如:

  1. SUBDIRS = kernel \
  2. tools \
  3. myapp

如果需要确保以特定顺序构建子目录,请在相关的 SUBDIRS 元素上使用 .depends 修饰符。例如:

  1. SUBDIRS += my_executable my_library tests doc
  2. my_executable.depends = my_library
  3. tests.depends = my_executable

上面的配置确保 my_library 在 my_executable 之前构建,而 my_executable 在 tests 之前构建。 但是,doc 可以与其他子目录并行构建,从而加快构建过程。

注意:可以列出多个依赖项,它们都将在依赖它们的目标之前构建。

注意:不鼓励使用 CONFIG += ordered,因为它会减慢多核构建的速度。与上面显示的示例不同,即使它们没有依赖关系,所有构建也将按顺序发生。

除了定义构建顺序之外,还可以通过为 SUBDIRS 元素提供额外的修饰符来修改 SUBDIRS 的默认行为。

支持的修饰符是:

  • .subdir:使用指定的子目录而不是 SUBDIRS 值。
  • .file:明确指定子项目 pro 文件。 不能与 .subdir 修饰符一起使用。
  • .depends:这个子项目依赖于指定的子项目。
  • .makefile:子项目的makefile。 仅在使用 makefile 的平台上可用。
  • .targetBase:字符串,用于与此子项目相关的 makefile 目标。 仅在使用 makefile 的平台上可用。

例如,定义两个子目录,它们都位于与 SUBDIRS 值不同的目录中,并且其中一个子目录必须在另一个子目录之前构建:

  1. SUBDIRS += my_executable my_library
  2. my_executable.subdir = app
  3. my_executable.depends = my_library
  4. my_library.subdir = lib

188、TARGET

指定目标文件的名称。默认情况下包含项目文件的基本名称。

例如:

  1. TEMPLATE = app
  2. TARGET = myapp
  3. SOURCES = main.cpp

上面的项目文件将在 unix 上生成一个名为 myapp 的可执行文件,在 Windows 上生成一个名为 myapp.exe 的可执行文件。

189、TARGET_EXT

指定 TARGET 的扩展名。

190、TARGET_x

使用主版本号指定 TARGET 的扩展。

191、TARGET_x.y.z

使用版本号指定 TARGET 的扩展名。

192、TEMPLATE

指定生成项目时使用的模板名称。

允许的值为: 

  • app:创建用于构建应用程序的 Makefile(默认)。
  • lib:创建用于构建库的 Makefile。
  • subdirs:创建用于在子目录中构建目标的 Makefile。子目录是使用 SUBDIRS 变量指定的。
  • aux:为不构建任何内容的项目创建一个 Makefile。 如果不需要调用编译器来创建目标,请使用此选项。例如,项目是用解释性语言编写的。注意:此模板类型仅适用于基于 Makefile 的生成器。 特别是,它不适用于 vcxproj 和 Xcode 生成器。
  • vcapp:仅限 Windows。为 Visual Studio 创建应用程序项目。
  • vclib:仅限 Windows。为 Visual Studio 创建库项目。

193、TRANSLATIONS

指定包含用户界面文本翻译成非母语的翻译 (.ts) 文件列表。

TRANSLATIONS 中的翻译文件将由 lrelease 和 Using lupdate 工具处理。如果只想 lrelease 处理文件,请使用 EXTRA_TRANSLATIONS。

可以使用 CONFIG += lrelease 在构建期间自动编译文件,并使用 CONFIG += lrelease embed_translations 使它们在 Qt 资源系统中可用。

194、UI_DIR

指定应放置 uic 中的所有中间文件的目录。

195、VERSION

如果指定了应用程序模板,则指定应用程序的版本号。

如果指定了 lib 模板,则指定库的版本号。

在 Windows 上,如果未设置 RC_FILE 和 RES_FILE 变量,则触发 .rc 文件的自动生成。生成的 .rc 文件将包含 FILEVERSION 和 PRODUCTVERSION 条目,其中包含主要、次要、补丁级别和内部版本号。每个数字必须在 0 到 65535 的范围内。

196、VERSION_PE_HEADER

仅限 Windows。指定版本号,Windows 链接器通过 -VERSION 选项将其放入 .exe 或 .dll 文件的标头中。只能指定主要和次要版本。如果未设置 VERSION_PE_HEADER,则从 VERSION(如果设置)回退到主要和次要版本。

 VERSION_PE_HEADER = 1.2

197、VER_MAJ

如果指定了 lib 模板,则指定库的主要版本号。

198、VER_MIN

如果指定了 lib 模板,则指定库的次要版本号。

199、VER_PAT

如果指定了 lib 模板,则指定库的补丁版本号。

200、VPATH

告诉 qmake 在哪里搜索它无法打开的文件。 例如,如果 qmake 查找 SOURCES 并找到无法打开的条目,则它会查看整个 VPATH 列表以查看是否可以自行找到该文件。

201、WINDOWS_TARGET_PLATFORM_VERSION

指定目标 Windows 版本。这对应于 vcxproj 文件中的标记 WindowsTargetPlatformVersion。

在桌面 Windows 上,默认值是环境变量 WindowsSDKVersion 的值。

202、WINDOWS_TARGET_PLATFORM_MIN_VERSION

指定 Windows 目标平台的最低版本。这对应于 vcxproj 文件中的标记 WindowsTargetPlatformMinVersion。

默认为 WINDOWS_TARGET_PLATFORM_VERSION。

 203、YACCSOURCES

指定要包含在项目中的 Yacc 源文件列表。 所有依赖项、头文件和源文件都将自动包含在项目中。

 YACCSOURCES = moc.y

204、_PRO_FILE_

包含正在使用的项目文件的路径。

例如,以下行导致将项目文件的位置写入控制台:

 message($$_PRO_FILE_)

注意:不要试图覆盖这个变量的值。

205、_PRO_FILE_PWD_

包含包含正在使用的项目文件的目录的路径。

例如,以下行会导致将包含项目文件的目录的位置写入控制台:

 message($$_PRO_FILE_PWD_)

注意:不要试图覆盖这个变量的值。

qmake运行时依赖的配置文件集 qmake.conf、.qmake.conf、.qmake.stash、.qmake.super、.qmake.cache文件 qt qmake 配置文件 qmake.conf .qmake.conf .qmake.stash .qmake.super .qmake.cache qt_build_paths.prf 阅读详情

相关推荐

17、连续/离散协同仿真工具的通用设计方法

本文介绍了一种通用的连续/离散(C/D)协同仿真工具设计方法,重点在于构建异构系统的协同仿真接口和同步机制。通过定义操作语义、分配同步功能、形式化验证接口行为以及实现仿真工具的集成,该方法为复杂系统的建模和仿真提供了高效、可靠的解决方案。文章还结合DEVS形式主义和定时自动机理论,展示了如何实现仿真接口的形式化建模与验证,并以CODIS工具为例说明了实际应用。这种方法在汽车电子、航空航天等领域具有广泛的应用前景。

ppp33的博客 1万+

C/C++笔记-构造makefile使用MOC程序及编译,链接

②:$(PROGRAM): $(OBJECTS):这个会先找在文件中找main.o Test.o moc_Test.o,如果找不到就在makefile下,看有没有对应的标签。背景是这样的构造一个Test类,使用了Q_OBJECT宏,和继承了QObject,也就是元对象,这时,makefile需要如何写。每一条命令在前一篇文章中已经说明了。

IT1995的博客 48万+

17、Mac应用的Spotlight与Quick Look集成技术解析

本文深入解析了Mac应用中Spotlight与Quick Look的集成技术,涵盖从Spotlight打开指定内容、Quick Look缩略图与预览生成、子项目配置到插件测试的完整流程。文章还总结了关键实现要点、性能优化策略及注意事项,并通过流程图和代码示例详细展示了技术实现路径,帮助开发者提升应用的专业性和用户体验。

h0i1j2k3l的博客 2269

CMake参考手册(草稿)

CMakeList.txt 引言 cmake_minimum_required(VERSION XXX) project(xxx) add_executable(xx xxx) CMAKE_SOURCE_DIR --The root source directory CMAKE_CURRENT_SOURCE_DIR --The current source directory if using sub-projects and directories. PROJECT_SOURCE_DIR --The s

bigchen 20万+

qt 5.6 qmake手册

qmake试图完成跨平台构建工具所期望的一切。当您确实需要运行特殊的平台相关命令时,这通常并不理想。这可以通过对不同qmake后端的特定说明来实现。Makefile输出的自定义是通过对象样式API执行的,如qmake中的其他地方所示。对象通过指定其成员自动定义。例如:上面的定义定义了一个名为mytarget的qmake目标,其中包含一个名为.buildfile的Makefile目标,该目标又由touch()函数生成。

qq_42815643的博客 3954

从零到一:Gromacs伞形采样的实战避坑指南

本文详细介绍了Gromacs伞形采样技术的实战应用与避坑指南,涵盖核心原理、环境准备、参数设置、数据分析及性能优化等关键环节。特别针对蛋白质-配体结合自由能计算等典型应用场景,提供了弹簧常数设置、采样窗口间距等实用参数建议,帮助研究人员高效完成分子动力学模拟。

weixin_29243279的博客 512

qmake 手册:变量

变量

canpool 286

CANoe: Panel的上位机控制方法

本文介绍了不同于IG的报文控制方法,实现了Panel面板的控制模式。

Jonsnow3zz的博客 1405

qmake手册(转)

qmake文档

quxiantao的专栏 1582

【机器人路径规划】基于改进型A*算法的机器人路径规划(Python代码实现)

本文针对传统A算法在机器人路径规划中存在的搜索效率低、路径不平滑等问题,提出了一种改进型A算法。该算法通过引入跳点搜索(JPS)技术优化子节点扩展方式,结合贝塞尔曲线或B样条曲线进行路径平滑处理,并采用动态启发式函数和自适应邻域搜索策略,显著提升了路径规划的效率和路径质量。实验结果表明,改进型A*算法在复杂环境下能有效减少搜索节点数量,缩短路径长度,提高路径平滑性,且具备动态避障能力。

2501_92867626的博客 1581

TOEIC托业词汇汇总(完整版)

1.appointment 约会,约定2.attendance 出席人数;出席3.cabinet 橱柜4.calendar 日历;月历;行事历5.clerk 办事员,书记6.directory 人名住址薄7.duplicte 复制;副本8.filing 归档9.in-tray 待处理文件盒10.monitor 检测;监视;追踪11.out-tray 已处理文件盒12.partition 分隔;分隔物(如墙壁等)13.postage 邮费。

weixin_39676449的博客 1万+

QMake手册

qmake工具为您提供了一个面向项目的系统,用于管理应用程序、库和其他组件的构建过程。这种方法使您能够控制所使用的源文件,并允许简明地描述流程中的每个步骤,通常在单个文件中进行描述。qmake将每个项目文件中的信息扩展为Makefile,该Makefile执行编译和链接所需的命令.

赵胜利的博客 2513

基于转录逆转的药物重定向 GPS 模型

GPS是一个基于分子结构预测基因表达扰动的开源平台,由三个模块组成:RCL(在LINCS扰动数据上训练抗噪MLP)、GPS4Drugs(预测新化合物的基因表达谱并进行逆转评分)、MolSearch(基于MCTS的分子优化)。平台使用Morgan指纹和Gene Ontology注释作为特征输入,将基因表达扰动离散为三分类标签。训练数据来自LINCS Phase I的18,746个化合物和978个landmark基因,支持四细胞系独立训练,可用于药物重定向与化合物筛选。

听雨草堂 82

qmake实用变量

一些项目开发中用到的qmake实用变量。

Qt君 1899

网络工程师教程第6版(2024年最新版)

本书 根据《网络工程师考试大纲》(2024年审定通过)编写,对网络工程师岗位所要求的主要知 识及应用技术进行了阐述。本书主要内容包括数据通信、局域网、无线通信网、网络互连、网络安全、网络操作系统与应用服务器、组网技术、网络管理、网络规划和设计。本书是参加网络工程师考试的必备教材,也可作为网络工程从业人员学习网络技术的教材或日常工作的参考用书。王涛和严体华编写了第2章、第3章和第4章;网络工程师教程(第6版)由清华大学出版社出版,由工业和信息化部教育与考试中心组编,张永刚、王涛、高振江任主编,具体介绍如下。

鹿鸣天涯 6901

Autosar CAN 网络管理标准文档

Autosar CAN 网络管理标准文档

蚂蚁小兵 923

qmake 手册:qmake 入门

本教程教您 qmake 的基础知识。本手册中的其他主题包含有关使用 qmake 的更多详细信息。

canpool 1091

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

qmake:配置qmake

一、属性 qmake 有一个持久化配置系统,它允许在 qmake 中设置一次属性,并在每次调用 qmake 时查询它。 可以在 qmake 中设置一个属性: qmake -set PROPERTY VALUE 您可以从 qmake 检索此信息,如下所示: qmake -query PROPERTY qmake -query //列出内置属性 以下是内置属性: QMAKE_SPEC:在主机构建期间解析并存储在 QMAKESPEC 变量中的主机 mkspec 的短名称

友善啊,朋友的博客 5075

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

qmake手册(Qt5.9.3)

qmake手册 qmake手册 概观 描述一个项目 建立一个项目 使用第三方库 预编译头文件 入门 从简单的开始 使应用程序可调试 添加平台特定的源文件 如果文件不存在停止qmake 检查多个条件 创建项目文件 项目文件元素 变量 注释 内置的功能和控制流程 项目模板 一般配置 声明Qt库 配置功能 声明其...

4793

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

qmake隐藏变量

来看看qmake都有哪些隐藏变量吧。

Qt君 576

QMake和CMake

详细说明了qmake的语法

hulinhulin的专栏 4874

qmake用户手册——qmake教程

qmake教程介绍 这个教程可以教会你如何使用qmake。我们建议你看完这个教程之后读一下qmake手册。 开始很简单 让我们假设你已经完成了你的应用程序的一个基本实现,并且你已经创建了下述文件: hello.cpp hello.h main.cpp 你可以在qt/qmake/examp...

chenlixie8601的博客 991

qmake 脚本 常用变量

qmake language 常用变量

qiushangren的专栏 1743
上一篇: Qt 编译环境笔记 (qt.conf) (xxxx.pro)
下一篇: qmake language $$() $$[] $${} 区别(属性property、变量variable、环境变量evironment variable)
szembed
博客等级 码龄18年 1475粉丝 256原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值