LogPlayLevel: Error: ld.lld: error: E:/Slua_UE_github/sluaunreal/Plugins/slua_unreal/Library/Android/armeabi-arm64\liblua.a(lapi.cpp.o) is incompatible with armelf_linux_eabi
LogPlayLevel: Error: ld.lld: error: E:/Slua_UE_github/sluaunreal/Plugins/slua_unreal/Library/Android/armeabi-arm64\liblua.a(lauxlib.cpp.o) is incompatible with armelf_linux_eabi
发现Project默认设置的Android平台是armv7,而由于构建脚本slua_unreal.Build.cs中指定的链接库顺序是arm64在前
PublicAdditionalLibraries.Add(Path.Combine(externalLib, "Android/armeabi-arm64/liblua.a"));
PublicAdditionalLibraries.Add(Path.Combine(externalLib, "Android/armeabi-v7a/liblua.a"));
PublicAdditionalLibraries.Add(Path.Combine(externalLib, "Android/x86/liblua.a"));
会导致链接器使用到arm64的库,结果报错。
此问题在4.24版本中不存在,怀疑是4.25构建过程有修改。
调整此处顺序,将armv7版本的库列在前面即可
PublicAdditionalLibraries.Add(Path.Combine(externalLib, "Android/armeabi-v7a/liblua.a"));
PublicAdditionalLibraries.Add(Path.Combine(externalLib, "Android/armeabi-arm64/liblua.a"));
PublicAdditionalLibraries.Add(Path.Combine(externalLib, "Android/x86/liblua.a"));
测试构建armv7、arm64版本均正常。