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

相关推荐
simplepeng5 小时前
我们都知道但总是忽略的5个Jetpack Compose细节
android·android jetpack
刮风那天5 小时前
Android 如何提高进程优先级避免被查杀?
android
修行者对6667 小时前
安卓阿里云镜像
android
刮风那天7 小时前
Android AMS创建进程不用Binder而用Socket?
android·java·binder
知行合一。。。9 小时前
Python--05--面向对象(继承,多态)
android·开发语言·python
张小潇10 小时前
AOSP15 WMS/AMS系统开发 -窗口动画源码分析
android
程序员陆业聪12 小时前
Shadow核心原理:壳子Activity与代理机制的精妙设计
android
plainGeekDev12 小时前
Android 开发者再不转Kotlin,真的来不及了
android·kotlin
赏金术士12 小时前
第五章:数据层—网络请求与Repository
android·kotlin·compose
初雪云12 小时前
让安卓发版再简单一点,体验一键自动化发布
android·运维·自动化