Version: Unity 6.0 (6000.0)
语言 : 中文
托管堆栈跟踪与 IL2CPP
Linux IL2CPP 交叉编译器

处理针对 IL2CPP 其他参数的特定于平台的设置

如果您的项目设置了其他__ IL2CPP__种由 Unity 开发的脚本后端,可在为某些平台构建项目时替代 Mono。更多信息
See in Glossary
参数,则针对多个平台的编译可能无法按预期进行,尤其是在针对 Linux 进行交叉编译时。

要了解是否已设置任何其他 IL2CPP 参数,请执行以下操作之一:

  • 检查是否设置环境变量 IL2CPP_ADDITIONAL_ARGS
  • ProjectSettings/ProjectSettings.asset,检查编辑器脚本是否具有名为 additionalIl2CppArgs 的值。

请注意,用于设置其他 IL2CPP 参数的方法全局应用于所有平台,如果针对不需要的平台进行设置,可能会导致编译问题。使用 IPreprocessBuildWithReport 钩子(如下所示)可确保仅为需要 IL2CPP 参数的平台设置 IL2CPP 参数。

IPreprocessBuildWithReport 钩子

使用 IPreprocessBuildWithReport 钩子构建脚本,或使用 Build 对话框设置其他参数:

class MyCustomPreprocessBuild: IPreprocessBuildWithReport
{
    public int callbackOrder { get { return 0; } }
    public void OnPreprocessBuild(BuildReport report)
    {
        string addlArgs = "";
        if (report.summary.platform == BuildTarget.StandaloneWindows || report.summary.platform == BuildTarget.StandaloneWindows64)
            addlArgs = "--compiler-flags=\"d2ssa-cfg-jt\"";
        UnityEngine.Debug.Log($"Setting Additional IL2CPP Args = \"{addlArgs}\" for platform {report.summary.platform}");
        PlayerSettings.SetAdditionalIl2CppArgs(addlArgs);
    }
}

其他资源

托管堆栈跟踪与 IL2CPP
Linux IL2CPP 交叉编译器