如何在Windows通过VS2022编译MSBuild项目为Linux ARM64版本
在Windows环境下用VS2022编译Linux ARM64的MSBuild C++项目(结合vcpkg)
1. 安装Linux ARM64编译组件
启动Visual Studio Installer,选择VS2022社区版的「修改」选项:
- 勾选「使用C++的Linux开发」工作负载
- 在右侧可选组件列表中,找到并勾选「Linux ARM64目标工具集」,完成安装后重启VS
2. 用vcpkg交叉编译Linux ARM64依赖包
先确保vcpkg处于最新状态:
vcpkg update vcpkg upgrade
为Linux ARM64架构(triplet为arm64-linux)安装项目所需的依赖包,比如项目依赖fmt和spdlog,执行:
vcpkg install fmt spdlog --triplet arm64-linux
所有项目用到的vcpkg库都必须指定
arm64-linuxtriplet安装,否则编译时会找不到对应架构的库文件
3. 为项目添加Linux ARM64平台配置
打开你的MSBuild项目:
- 点击VS顶部解决方案平台的下拉菜单,选择「配置管理器」
- 在「活动解决方案平台」下拉框选「<新建>」,平台选择「ARM64」,「复制设置自」选择「Linux」,勾选「创建新的项目平台」,点击确定
- 将解决方案平台切换为「ARM64-Linux」
4. 关联vcpkg到Linux ARM64项目
自动集成(推荐)
执行以下命令让vcpkg自动关联所有MSBuild项目:
vcpkg integrate install
然后在项目属性中确认:
- 右键项目 -> 属性 -> 配置属性 -> vcpkg,将「使用vcpkg」设为「是」,「Triplet」选择「arm64-linux」
手动配置(如果自动集成失效)
如果自动集成不生效,手动指定库路径:
- 右键项目 -> 属性 -> 配置属性 -> C/C++ -> 常规,在「附加包含目录」添加:
$(VCPKG_ROOT)\installed\arm64-linux\include - 配置属性 -> 链接器 -> 常规,在「附加库目录」添加:
$(VCPKG_ROOT)\installed\arm64-linux\lib - 链接器 -> 输入,在「附加依赖项」中添加对应库的文件名(比如静态库
fmt.a、spdlog.a,动态库则是libfmt.so、libspdlog.so,根据你的vcpkg安装类型选择)
5. 配置远程调试(可选)
如果需要调试编译后的程序,配置远程Linux ARM64设备:
- 右键项目 -> 属性 -> 配置属性 -> 常规,设置「远程生成计算机」为你的Linux设备IP或主机名
- 配置属性 -> 调试,设置「调试器类型」为「Linux调试器」,指定程序在远程机器上的运行路径和启动命令
6. 编译项目
切换到「ARM64-Linux」配置,点击VS顶部的「生成解决方案」按钮。编译完成后,输出文件会存放在项目目录下的ARM64\Release(或Debug)子目录中,如果配置了远程机器,也会同步到远程设备的指定路径。
内容的提问来源于stack exchange,提问作者euraad
相关产品推荐
相关产品推荐

