Arm64EC 入门

若要开始使用 Arm64EC 生成应用或项目,需要安装一些必备软件并添加 Arm64EC 配置。

先决条件

  • 最新的 Windows 11 SDK 版本。 如果使用 Windows 11 SDK 版本 22000,则 2022 年 7 月 29 日更新的版本包括生成 Arm64EC 应用的关键修补程序。
  • Visual Studio 2022 版本 17.3 或更高版本。
  • 随 Visual Studio 安装程序一起安装的 Arm64EC 工具。

在 Visual Studio 安装程序中,可以通过在“单个组件”下搜索并选择“MSVC v143 - VS 2022 C++ ARM64 生成工具”复选框来添加 Arm64EC 工具

Visual Studio Installer Arm64EC checkbox screenshot

重要

从 Visual Studio 2022 版本 17.4 开始,安装 Arm64 工具时包括 Arm64EC 工具(MSVC v143 - VS 2022 C++ ARM64 生成工具)。 不再需要为 Arm64EC 工具选择单独的选项。

安装必备组件和工具后,可以在 MSBuild 和 CMake 项目中以 Arm64EC 为目标。

MSBuild 项目

  1. 安装工具和 SDK 后,创建新的 C++ 项目或打开现有项目。

    注意

    如果你的项目使用的是 Windows 11 之前的 SDK 或 VS 17.3 之前的 MSVC 版本,则需要重定向解决方案以使用它们的最新版本。

  2. 若要添加 Arm64EC 平台:

    • 在“生成”菜单上,选择“配置管理器”
    • 在“活动解决方案平台”框中,选择“<New…>”以创建新平台
    • 选择“ARM64EC”,从“x64”复制设置,然后选中“创建新的项目平台”复选框

    Visual Studio Installer New Arm64EC Platform screenshot

    可以根据需要选择将解决方案的各部分保留为 x64。 但是,生成为 Arm64EC 的代码越多,以 Arm 上 Windows 11 的本机性能运行的代码就越多。 对于任何外部依赖项,请确保项目的链接基于这些项目的 x64 或 Arm64EC 版本。

  3. 新的解决方案平台就绪并选中后,选择 Visual Studio 中的“生成”以开始生成 Arm64EC 二进制文件

根据设计,并不是 Arm64EC 解决方案中的所有项目都需要面向 Arm64EC,因为它们可以改为面向 x64。 对于想要保留为 x64 的任何此类项目,请确保在 ARM64EC 解决方案版本下的配置管理器中将这些项目配置为面向 x64。

CMake 项目

  1. 打开“C++ CMake”项目或创建新项目。

  2. 转到活动配置下拉列表并选择“管理配置”,打开 CMakePresets.json 文件。

  3. 修改适用于 Arm64EC 的 Windows 配置下的体系结构属性。

     "architecture": { 
        "value": "arm64ec", 
        "strategy": "external"
     }
    

    默认生成器为 Ninja。 如果使用 Visual Studio 生成器,请更改要“设置”的策略字段。

  4. 如果使用 Ninja 生成器,则还需要通过将环境对象添加到 CMakePresets 配置来设置一些环境变量。

     "environment": { 
        "CXXFLAGS": "/arm64EC",
        "CFLAGS": "/arm64EC" 
     }
    
  5. 保存 CMakePresets 文件,并确保活动配置设置为 Arm64EC 配置。 从菜单栏中,选择“项目菜单”,然后选择“配置 [项目名称]”,以便生成 CMake 缓存。

  6. 导航到“生成菜单”并选择“全部生成”,生成面向 Arm64EC 的 CMake 项目,就像任何其他 CMake 项目一样。

开发人员命令提示符

如果有兴趣使用 Visual Studio 开发人员命令提示来编译和链接 Arm64EC 的源文件,则需要使用 Arm64 开发人员命令提示,然后单独运行 cllink 命令。 使用 cl/arm64EC 开关和 link/MACHINE:ARM64EC 生成并链接 Arm64EC 代码。

cl /arm64EC /c <args>

link /MACHINE:ARM64EC <args>

详细了解如何从命令行使用 Microsoft C++ 工具集