Unity 2018.3,升级到 Catalina 后,链接器在 Android (ndk n16b) 上的 il2cpp 编译期间崩溃

Unity 2018.3, linker crashes during il2cpp compilation on Android (ndk n16b) after upgrading to Catalina

升级到 macOS Catalina 后,我的 Unity 2018.3 无法使用 il2cpp 为 Android 编译。

错误似乎是在链接过程中发生的。

这是输出:

/Users/myuser/Applications/android-ndk-r16b/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ @"/var/folders/vq/04653nwj79jdpld6_lndr1lw0000gn/T/tmpXtN5uB.tmp" -o "/Users/myuser/Documents/Unity/MyProject/Library/il2cpp_android_arm64-v8a/il2cpp_cache/linkresult_44B2FEF258539B2B7FE0DE0B1C88B423/libil2cpp.so" -shared -Wl,-soname,libil2cpp.so -Wl,--no-undefined -Wl,-z,noexecstack -Wl,--gc-sections -Wl,--build-id --sysroot "/Users/myuser/Applications/android-ndk-r16b/platforms/android-21/arch-arm64" -gcc-toolchain "/Users/myuser/Applications/android-ndk-r16b/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64" -target aarch64-none-linux-android -Wl,--wrap,sigaction -L "/Users/myuser/Applications/android-ndk-r16b/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a" -lgnustl_static -llog -Xlinker -Map="/Users/myuser/Documents/Unity/MyProject/Library/il2cpp_android_arm64-v8a/il2cpp_cache/linkresult_44B2FEF258539B2B7FE0DE0B1C88B423/libil2cpp.map" -rdynamic -fuse-ld=bfd
clang++: error: invalid linker name in argument '-fuse-ld=bfd'

看起来在 NDK 中 darwin-x86_64 没有链接器 ld-bfd :(

您知道如何修复吗?

我找到了一个(非常糟糕的)解决方法,它...有效。

导航到您的 NDK 文件夹,然后:

cd toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64/aarch64-linux-android/bin

现在,将 gold 链接器复制为 bfd:

cp ld.gold ld.bfd

不确定它是否有任何副作用,但是,好吧...它可以编译!