这些Dsymutil警告在XCode 4.5中意味着什么?

时间:2013-01-23 21:27:38

标签: ios xcode xcode4.5 dsymutil

我正在连接iOS的静态框架和armv7 ios 6应用程序,我怀疑原始二进制文件来自XCode 3.x并且是用GCC编译的,我现在用CLang编译器链接它。我没有框架的源代码,只有二进制文件:

(null): warning: (armv7) /.../DerivedData/.../armv7/HardwareObjectFile.o unable to open object file

我得到69个警告,如上所述,每个.o文件链接到静态框架。

此警告是否因任何原因而严重?我已经简化了巨大的路径,这似乎表明库中的二进制文件已经在" / Users / somedeveloperthatisntme"中进行了硬编码。因为我在计算机上使用这个库甚至没有一个名为" User / somedeveloperthatntntme"。

的文件夹,这几乎无法帮助但不存在。

Dsymutil似乎是一个工具来操纵归档的DWARF调试符号文件"虽然我完全不知道它是什么以及它做了什么,尽管Apple提供了全面的文档,告诉我什么,但从来没有,为什么。它在做什么,这个警告对我意味着什么?我怀疑我需要供应商提供一个新的库/静态框架来清除它吗?

更新:我无法解决这个问题,看起来原因是由非常旧的XCODE版本编译的非常旧的二进制文件,作为移动框架的一部分从第三方供应商提供。在这种情况下的问题将通过让该供应商重建他们的库来解决,我要求他们这样做,因为这些警告让我疯狂,但他们似乎无法做到。最后,我抛弃了他们的技术并用其他东西取而代之。 (GRIN)

5 个答案:

答案 0 :(得分:15)

这些错误与您使用的体系结构和您引用的资源有关。我自己并不了解原因,但是如果你想让它们消失,请转到Build settings,然后选择Build Options,然后选择Debug information format并选择DWARF。

答案 1 :(得分:13)

我在另一方面,构建一个供其他人使用的库,我可以通过在Build Settings中设置'GCC_GENERATE_DEBUGGING_SYMBOLS = NO'来改变库项目,使这些警告在Application项目中消失消耗了输出框架。

这不是您的问题的解决方案,但如果您与此供应商联系,您可以传递此信息。

答案 2 :(得分:4)

其他答案包含有用的信息,但我希望简明扼要地提出真正的答案:

您无法解决此问题,并且错误的含义很简单:当前链接器将这些库文件视为包含无法打开的元素。

要解决警告,请与供应商联系,获取已使用更高版本的CLANG重建的重新编译的库。

答案 3 :(得分:3)

我所做的只是删除/ Library / Developer / Xcode / DerivedData文件夹,它为我修复了一切。

答案 4 :(得分:1)

这些警告可能发生的另一个原因是项目中发布版本的符号剥离设置不正确。联系框架的作者并告诉他们使用正确的符号剥离设置制作新的二进制文件。