You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows x64平台编译同时兼容arm64与x64的单一DLL?

构建Windows多架构(x64/arm64)单一DLL的方法

可行性说明

Windows平台支持包含x64和arm64架构代码的FAT DLL(类似macOS的通用二进制),可在两种架构的Windows系统上运行,且完全能在x64 Windows机器上完成构建,无需arm64设备。

实现方案

1. 使用MSVC工具链(微软官方方案)

先分别编译两个架构的DLL,再用lib.exe工具合并:

# 编译x64版本DLL
cl /LD /arch:x64 Library.c
# 编译arm64版本DLL(需提前安装arm64目标的MSVC组件)
cl /LD /arch:arm64 Library.c
# 合并为多架构FAT DLL
lib /OUT:Library.dll Library_x64.dll Library_arm64.dll

2. 使用gcc/g++(MinGW-w64交叉编译)

需要安装支持arm64交叉编译的MinGW-w64工具链,配合LLVM的llvm-lipo工具完成合并:

# 编译x64版本DLL
x86_64-w64-mingw32-gcc -shared -o Library_x64.dll Library.c
# 交叉编译arm64版本DLL
aarch64-w64-mingw32-gcc -shared -o Library_arm64.dll Library.c
# 合并为多架构DLL(需安装LLVM工具链获取llvm-lipo)
llvm-lipo -create Library_x64.dll Library_arm64.dll -output Library.dll

关键说明

  • gcc/g++本身没有内置的多架构二进制合并功能,需要依赖llvm-lipo这类外部工具完成最终的合并步骤。
  • 无论使用哪种工具链,核心逻辑都是先分别编译不同架构的独立DLL,再将它们打包到同一个文件中,系统加载时会自动匹配当前CPU架构执行对应的代码段。

内容的提问来源于stack exchange,提问作者Maxim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 22:12:37