问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Arm64EC开发入门指南

创作时间:
作者:
@小白创作中心

Arm64EC开发入门指南

引用
1
来源
1.
https://learn.microsoft.com/zh-cn/windows/arm/arm64ec-build?view=msvc-170

Arm64EC(Arm64 Emulation Compatible)是微软为Windows平台引入的一种新的二进制格式,它允许开发者在Arm架构的Windows设备上运行x64应用程序。本文将详细介绍如何在Windows平台上使用Arm64EC进行应用开发,包括必备软件的安装、MSBuild和CMake项目的配置方法,以及如何使用命令行工具进行编译和链接。

先决条件

要开始使用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 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版本,则需要重定向解决方案以使用它们的最新版本。

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

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

  1. 新的解决方案平台就绪并选中后,选择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生成器,请更改要“设置”的策略字段。

  1. 如果使用Ninja生成器,则还需要通过将环境对象添加到CMakePresets配置来设置一些环境变量:
"environment": {
    "CXXFLAGS": "/arm64EC",
    "CFLAGS": "/arm64EC"
}
  1. 保存CMakePresets文件,并确保活动配置设置为Arm64EC配置。从菜单栏中,选择“项目菜单”,然后选择“配置[项目名称]”,以便生成CMake缓存。

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

开发人员命令提示符

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

cl /arm64EC /c <args>
link /MACHINE:ARM64EC <args>

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

本文原文来自微软官方文档

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号