By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement . We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UE 4.25.1,slua for_4.25 分支的示例工程 democpp ,构建Android版本时报链接错误

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版本均正常。