CMP0020

在 Windows 上自动将 Qt 可执行文件链接到 qtmain 目标。

在 Windows 上,CMake 2.8.10 及更早版本要求 Qt 用户总是手动指定与静态库 qtmain.lib 链接的依赖关系。CMake 2.8.11 在确定 IMPORTED 目标的链接依赖关系时获得了评估生成器表达式的能力。这使得 CMake 本身能够在使用 IMPORTED Qt 目标时自动将链接到 Qt 的可执行文件链接到 qtmain.lib 库。对于已经链接到 qtmain.lib 的应用程序,这应该几乎没有影响。对于提供自己替代的 WinMain 实现的应用程序和使用 QAxServer 库的应用程序,需要禁用此自动链接,具体请参阅文档。

此策略的 OLD 行为是在链接到 QtCore IMPORTED 目标时,不自动将可执行文件链接到 qtmain.lib。此策略的 NEW 行为是在链接到 QtCore IMPORTED 目标时,自动将可执行文件链接到 qtmain.lib

此策略是在 CMake 版本 2.8.11 中引入的。它可以通过 cmake_policy()cmake_minimum_required() 设置。如果没有设置,CMake 会发出警告并使用 OLD 行为。

注意

根据 定义,策略的 OLD 行为已被 弃用,并且将来某个版本的 CMake 中可能会将其移除。