【问题标题】:How to get rid of "Unknown type name '__declspec'" error in Xcode如何摆脱 Xcode 中的“未知类型名称'__declspec'”错误
【发布时间】:2016-02-04 04:47:03
【问题描述】:

我尝试在 Xcode 中为 Google Cardboard 构建并运行我的第一个项目。

我第一次遇到基本上说我的签名不正确的东西,并要求我登录以便计算机可以修复它(看起来是这样)。 (我包含此信息,以防它以某种方式与错误有关。)

然后我遇到了错误Unknown type name '__declspec' 并且不知道如何修复它。

here 也发现了这个问题,但没有答案。 Google search 产生了大约 50 个结果,所以它似乎比较少见。

我最好的做法是什么?

【问题讨论】:

    标签: ios xcode unity3d


    【解决方案1】:

    如果您无法升级到修复此问题的 Unity 版本,我有一个修复程序。

    在名为 il2cpp-codegen.h 的 Unity 应用程序中找到 3 个文件。例如,在 Mac Unity 上,它们位于:

    /Applications/Unity5.1.4/Unity.app/Contents/PlaybackEngines/WebGLSupport/BuildTools/Libraries/libil2cpp/include/codegen/il2cpp-codegen.h
    /Applications/Unity5.1.4/Unity.app/Contents/PlaybackEngines/iossupport/il2cpp/libil2cpp/include/codegen/il2cpp-codegen.h
    /Applications/Unity5.1.4/Unity.app/Contents/Frameworks/il2cpp/libil2cpp/codegen/il2cpp-codegen.h
    

    在那些中找到这一行:

    NORETURN static void il2cpp_codegen_raise_exception (Il2CppCodeGenException *ex)
    

    从每个中删除“NORETURN”,然后保存文件。它现在应该可以工作了。

    【讨论】:

    • 你是救命稻草。
    【解决方案2】:

    Unity 刚刚发布了一个新版本 5.3.2 来处理这个问题。

    【讨论】:

    • 我无法升级到 5.3.2,它破坏了 UI.Text。如果您不能像我一样升级,请查看我的答案。
    • 注意:5.3.5 修复了 UI.Text,以及 5.2 的 iOS 渲染问题。
    【解决方案3】:

    我在嵌入 C++ dll 的库中遇到了类似问题。

    如果你不想升级我相信你可以更换:

    #define NORETURN __declspec(noreturn)
    

    由

    #define NORETURN __attribute__((noreturn))
    

    【讨论】:

      【解决方案4】:

      对于每个抛出错误的文件,应仅从这些行中删除 NORETURN。

      但有时不是 NORETURN 问题,而是必须删除 IL2CPP_NO_INLINE。

      这应该可以解决问题。

      【讨论】:

        猜你喜欢
        • 2010-10-17
        • 2017-04-30
        • 1970-01-01
        • 1970-01-01
        • 2012-10-28
        • 2016-06-13
        • 2012-02-20
        • 2016-06-14
        • 1970-01-01
        相关资源
        最近更新 更多