Arm64EC开发入门指南
Arm64EC开发入门指南
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项目配置
- 安装工具和SDK后,创建新的C++项目或打开现有项目。
注意:如果你的项目使用的是Windows 11之前的SDK或VS 17.3之前的MSVC版本,则需要重定向解决方案以使用它们的最新版本。
- 若要添加Arm64EC平台:
- 在“生成”菜单上,选择“配置管理器”。
- 在“活动解决方案平台”框中,选择“<New…>”以创建新平台。
- 选择“ARM64EC”,从“x64”复制设置,然后选中“创建新的项目平台”复选框。
可以根据需要选择将解决方案的各部分保留为x64。但是,生成为Arm64EC的代码越多,以Arm上Windows 11的本机性能运行的代码就越多。对于任何外部依赖项,请确保项目的链接基于这些项目的x64或Arm64EC版本。
- 新的解决方案平台就绪并选中后,选择Visual Studio中的“生成”以开始生成Arm64EC二进制文件。
根据设计,并不是Arm64EC解决方案中的所有项目都需要面向Arm64EC,因为它们可以改为面向x64。对于想要保留为x64的任何此类项目,请确保在ARM64EC解决方案版本下的配置管理器中将这些项目配置为面向x64。
CMake项目配置
打开“C++ CMake”项目或创建新项目。
转到活动配置下拉列表并选择“管理配置”,打开CMakePresets.json文件。
修改适用于Arm64EC的Windows配置下的体系结构属性:
"architecture": {
"value": "arm64ec",
"strategy": "external"
}
默认生成器为Ninja。如果使用Visual Studio生成器,请更改要“设置”的策略字段。
- 如果使用Ninja生成器,则还需要通过将环境对象添加到CMakePresets配置来设置一些环境变量:
"environment": {
"CXXFLAGS": "/arm64EC",
"CFLAGS": "/arm64EC"
}
保存CMakePresets文件,并确保活动配置设置为Arm64EC配置。从菜单栏中,选择“项目菜单”,然后选择“配置[项目名称]”,以便生成CMake缓存。
导航到“生成菜单”并选择“全部生成”,生成面向Arm64EC的CMake项目,就像任何其他CMake项目一样。
开发人员命令提示符
如果你有兴趣使用Visual Studio开发人员命令提示来编译和链接Arm64EC的源文件,则需要使用Arm64开发人员命令提示,然后单独运行cl
和link
命令。使用cl
的/arm64EC
开关和link
的/MACHINE:ARM64EC
生成并链接Arm64EC代码:
cl /arm64EC /c <args>
link /MACHINE:ARM64EC <args>
详细了解如何从命令行使用Microsoft C++工具集。
本文原文来自微软官方文档