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

我将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”中的一个path的巨大path,它几乎不能帮助但不存在,因为我在一台甚至不在的计算机上使用这个库有一个名为“Users / somedeveloperthatisntme”的文件夹。

Dsymutil似乎是一个“操纵归档DWARFdebugging符号文件”的工具,尽pipe我完全不知道它是什么以及它做了什么,尽pipe苹果公司提供了详尽的文档,告诉我为什么,但从来没有。 这是怎么回事,这个警告对我意味着什么? 我怀疑我需要一个新的库/静态框架从供应商清除这个呢?

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

这些错误与您正在使用的体系结构以及您参考的资源有关。 我自己不明白原因,但是如果您希望它们消失,请转到构build设置,然后select构build选项,然后selectdebugging信息格式并selectDWARF。

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

这不是解决您的问题的方法,但是如果您与此供应商联系,则可以将此传递给您。

其他答案包含有用的信息,但我希望简洁地回答真实的答案:

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

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

我所做的只是删除/库/开发/ Xcode / DerivedData文件夹,它修复了我的一切。

这些警告可能发生的另一个原因是由于在项目中释放构build的符号剥离设置不正确。 联系框架的作者,并告诉他们使用正确的符号剥离设置来创build一个新的二进制文件。