UE5.6源码安卓打包报错

"Error: Multiple input files specified on command line: "../Plugins/FX/Niagara/Source/Niagara/Private/NiagaraDataInterfaceVectorField.ispc" and "= 6".37/39 Compile aarch64 FloatArrayMath.ispc

问题根源:ISPC 在 Android Arm64 交叉编译阶段出错

UE 5.5 之后 Epic 把 Intel ISPC(Single-Program/Multiple-Data CPU 向量编译器)默认强制打开,而引擎自带的 ISPC 版本目前仍然只针对 x86_64 主机编译器配置。当你用 UE 5.6 为 Android(arm64-v8a) 打包时,UBT 会把每个 *.ispc 文件交给同一个 Windows 主机上的 ispc.exe,并插入一个无效的 aarch64 目标参数。命令行里出现像

... NiagaraDataInterfaceVectorField.ispc --target=aarch64-neon-i32x4 = 6

= 6 被 ISPC 当成第二个输入文件,于是抛出:

Error: Multiple input files specified on command line: "...NiagaraDataInterfaceVectorField.ispc" and "= 6".

导致整个 Android 构建链条被中断

解决方案

  1. 把 ISPC 关掉只会让少数 Niagara/Chaos 的 CPU 路径退回到普通 C++ 实现,对移动设备来说几乎没有性能损失。直接在项目的Target.cs 和Editor.Target.cs加上,这是最快的解决方案。

bCompileISPC = false;

如果还不行的话,将 源码的UEBuildAndroid.cs的Target.bCompileISPC设置成false

UnrealEngine-5.6.0-release\Engine\Source\Programs\UnrealBuildTool\Platform\Android\UEBuildAndroid.cs

  1. 升级 ISPC 工具链
    https://github.com/ispc/ispc/releases 下载与主机平台对应的 ispc-v1.27.x 压缩包。将对应平台的执行文件替换

UnrealEngine-5.6.0-release\Engine\Source\ThirdParty\Intel\ISPC\bin

UnrealEngine-5.6.0-release\Engine\Source\ThirdParty\Intel\ISPCTexComp\ISPCTextureCompressor-14d998c\ISPC

相关推荐
GitLqr3 小时前
Flutter 无障碍开发实战:玩转 Semantics 解决视障用户使用痛点
android·flutter·dart
雨白6 小时前
掌握 NestedScrolling 嵌套滑动:手写仿知乎折叠主页
android
Xzaveir8 小时前
别把所有“认证”都塞进 AuthService:实名、一键登录与号码身份的领域拆分
android·人工智能
BerrySen1788 小时前
KMP全栈开发:从Android到AI Agent的技术演进与实践
android·人工智能
AFinalStone9 小时前
Android 7系统休眠唤醒(一)电源管理架构全景图
android·powermanager·电源管理
YM52e10 小时前
鸿蒙Flutter Center居中组件:Align对齐详解
android·学习·flutter·华为·harmonyos·鸿蒙
时间的拾荒人11 小时前
MySQL 视图详解
android·数据库·mysql
祉猷并茂,雯华若锦11 小时前
Appium 3.x安卓按键与通知栏操作全指南
android·appium
码农coding12 小时前
android 12 SurfaceFlinger开机启动分析
android
hunterandroid12 小时前
Paging 3 RemoteMediator 实战:构建离线优先的分页列表
android·前端