【问题标题】:CMake targeting from a minimum Windows SDK version and above最低 Windows SDK 版本及更高版本的 CMake 目标
【发布时间】:2022-11-23 15:29:49
【问题描述】:

VS Studio 能够设置最低 Windows SDK 版本和目标 SDK 版本。看:

How to chose minimum and target versions of Windows 10 SDK

我正在使用 CMake 和 Ninja 进行开发,所以我不直接使用 VS Studio。我的问题与 CMake 对 Windows 的最低和目标 SDK 版本的使用有关。

您可以设置 CMake 变量 CMAKE_SYSTEM_VERSION 来设置目标 SDK 版本。但这是什么行为呢?这个目标版本是当前 SDK 版本还是最低 SDK 版本?

我的目标是创建一个从特定最低 Windows SDK 版本开始的应用程序,比如 Windows 10.0.18362 及更高版本。 我的理解是 CMAKE_SYSTEM_VERSION 像一种最低版本一样工作......但不确定。

有人知道吗? 谢谢

【问题讨论】:

    标签: windows cmake sdk


    【解决方案1】:

    我相信你要找的是the VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION target property。

    我发现有关目标版本和最低目标版本之间差异的一些信息是here:

    [最低] 指定项目可以运行的平台的最低版本。此属性仅在项目类型支持时出现。如果您的应用程序可以利用较新 Windows SDK 版本中的功能,但仍可在较早版本上运行,可能会丢失一些功能,请设置此值。如果设置为较低的值,您的代码应在运行时检查其运行平台的版本。然后,禁用旧平台版本中不可用的功能。

    我不知道这与 TargetDeviceFamily 有何关系,这似乎是 CMake 硬编码为 <TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0"/>(参见 Source/cmVisualStudio10TargetGenerator.cxx)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-01
      • 2016-06-03
      • 2016-06-24
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      相关资源
      最近更新 更多