我以前从未见过的奇怪的 xCode 链接器错误说“断言失败”

2024-06-28

通过Unity构建了这个游戏,并通过xCode成功编译过一次。然而,如果没有任何明显的变化,就会出现此错误消息。我不明白从哪里开始寻找解决方案,但也许其他人有线索?我通过搜索看到了类似的错误,尽管与我的相比,这些修复似乎是任意的。

有人能透露一些信息吗?谢谢你!!

0 0x1034de0e7 __assert_rtn + 144 1 0x10351350c archive::File<arm>::makeObjectFileForMember(archive::File<arm>::Entry const*) const + 1142 2 0x103512c9a archive::File<arm>::forEachAtom(ld::File::AtomHandler&) const + 416 3 0x10352a6a1 ld::tool::InputFiles::forEachInitialAtom(ld::File::AtomHandler&, ld::Internal&) + 465 4 0x10353490e ld::tool::Resolver::resolve() + 48 5 0x1034dec47 main + 679 A linker snapshot was created at: /tmp/wingOstar-2014-09-26-171939.ld-snapshot ld: Assertion failed: (memberIndex != 0), function makeObjectFileForMember, file /SourceCache/ld64/ld64-236.4/src/ld/parsers/archive_file.cpp, line 355. clang: error: linker command failed with exit code 1 (use -v to see invocation)


这似乎是 Xcode 开发人员希望你永远不会真正看到的错误之子......

该消息中对搜索最有用的部分是ld: Assertion failed: (memberIndex != 0),因为这是错误的根源而不是支持信息。

我可能找到了与你相同的几个来源,但是他们表示 http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-October/066753.html这是由于 Xcode 试图链接你的程序的资源之一损坏造成的,而不是由你自己的代码直接造成的。文件被某些外部操作损坏可以解释尽管程序源没有明显变化,但这种情况是如何发生的。

因此,解决此问题的明显建议是通过确保重新编译导致损坏的任何内容来修复损坏。首先要做的就是彻底清理您的项目,以便不再使用旧的预编译文件并重建您自己的所有代码。由于您的错误提到了源缓存,按照此处的建议进行操作 https://stackoverflow.com/q/5714372/1366431擦拭all缓存,而不仅仅是通过“产品”->“清理”选项清除的缓存。

错误消息还给出了使用的建议-v标记以查看什么ld实际上正在做,这可以帮助您缩小可能损坏的目标文件的范围(通过向您显示实际使用的目标文件)。要添加该标志,请转到项目设置中的“构建设置”,转到“链接”->“其他链接器标志”,然后添加-v对那些。重建项目后,请查看“报告导航器”面板中的“构建”消息,并展开链接器消息以获取链接对象的完整列表。如果这些选项中的任何一个引用了您提供的库,请考虑删除并重建它们,然后再再次清理和重建您的项目。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我以前从未见过的奇怪的 xCode 链接器错误说“断言失败” 的相关文章

随机推荐