我尝试在Xcode中构建并运行我的第一个Google Cardboard项目。
我第一次遇到的事情基本上说我的签名不正确,并要求我登录以便计算机可以修复它(它似乎)。 (如果它以某种方式与错误相关,我会包含此信息。)
然后我遇到了错误Unknown type name '__declspec'
,并且不知道如何解决它。
此问题也在here找到,但没有答案。 Google search产生了大约50个结果,因此它似乎相对不常见。
什么是我最好的行动方案?
答案 0 :(得分:15)
如果您无法升级到修复此功能的Unity版本,我可以修复此问题。
在Unity应用程序中找到名为il2cpp-codegen.h的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"从每个,并保存文件。它现在应该工作。
答案 1 :(得分:2)
Unity刚刚发布了新版本5.3.2,以解决这个问题。
答案 2 :(得分:2)
我在嵌入C ++ DLL的库中遇到了类似的问题。
如果您不想升级,我相信您可以替换:
Product::with('filters')->where('filter_id', 10)->first()->data;
通过
#define NORETURN __declspec(noreturn)
答案 3 :(得分:0)
对于每个抛出错误的文件,应该只从那些行中删除 NORETURN 。
但有时问题不是 NORETURN ,但必须删除 IL2CPP_NO_INLINE 。
这应解决问题。