繁体   English   中英

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

[英]Weird xCode linker error I've never seen before saying “Assertion failed”

通过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) ,因为这是错误的根,而不是支持信息。

我可能找到了你做的相同的几个来源,但是他们表示这是由Xcode试图链接你的程序的一个资源中的损坏引起的,而不是由你自己的代码直接引起的。 文件被某些外部操作损坏会解释如何在程序源中没有明显更改的情况下发生这种情况。

因此,解决此问题的明显建议是通过确保导致重新编译的任何内容来修复损坏。 首先要做的是彻底清理项目,以便不使用较旧的预编译文件,并重建所有自己的代码。 由于您的错误提到了源缓存,请按照此处的建议擦除所有缓存,而不仅仅是那些由Product-> Clean选项清除的缓存。

错误消息还提供了使用-v标志来查看ld实际正在做什么的建议,这可以帮助您缩小哪些目标文件可能已损坏(通过显示实际使用的是哪些)。 要添加标志,请转到项目设置中的Build Settings,转到Linking-> Other链接标志,然后在其中添加-v 重建项目后,查看Report Navigator面板中的Build消息,然后展开链接器消息以获取链接对象的完整列表。 如果这些选项中的任何一个引用了您提供的库,请在清理和重新构建项目之前考虑删除和重建它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM