简体   繁体   English

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

[英]What do these Dsymutil Warnings mean in XCode 4.5?

I am linking a static framework for iOS, against an armv7 ios 6 application, I suspect that the original binaries are from XCode 3.x and were compiled with GCC, and that I'm now linking it using CLang compiler. 我正在将一个针对iOS的静态框架链接到一个armv7 ios 6应用程序,我怀疑原始二进制文件来自XCode 3.x,并且已使用GCC进行了编译,现在我正在使用CLang编译器对其进行链接。 I do not have the source code for the framework, only the binaries: 我没有框架的源代码,只有二进制文件:

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

I get 69 warnings like the above, one for every .o file linked into the static framework. 我收到像上述的69条警告,每个链接到静态框架的.o文件均发出一条警告。

Is this warning serious for any reason? 此警告出于任何原因严重吗? I have simplified the giant path which appears to indicate that the binary files in the library have hardcoded a path in "/Users/somedeveloperthatisntme" that could hardly help but Not Exist since I'm using this library on a computer that doesn't even have a folder named "Users/somedeveloperthatisntme". 我简化了巨型路径,该路径似乎表明该库中的二进制文件已在“ / Users / somedeveloperthatisntme”中硬编码了一条路径,该路径几乎无济于事,因为我在没有使用此库的计算机上使用了该库有一个名为“ Users / somedeveloperthatisntme”的文件夹。

Dsymutil appears to be a tool to "manipulate archived DWARF debug symbol files", although I know precisely nothing about what it is and what it does, notwithstanding the thorough documentation from Apple, which tells me what, but never ever, why. Dsymutil似乎是“操纵DWARF存档的调试符号文件的工具”,尽管尽管苹果公司提供了详尽的文档,但我对它的含义和作用一无所知,但它告诉了我什么,但从来没有,为什么。 What is it doing, and what will this warning mean for me? 它在做什么,这个警告对我意味着什么? I suspect I need a new library/static-framework from the vendor to clear this up? 我怀疑我需要供应商提供新的库/静态框架来解决此问题吗?

Update: I am unable to solve this and it appears the cause lays with very old binaries compiled by a very old XCODE version, shipped as part of a mobile framework from a third party vendor. 更新:我无法解决此问题,原因似乎是由非常老的XCODE版本编译的非常老的二进制文件造成的,该二进制文件是第三方供应商提供的移动框架的一部分。 The issue in this case would be resolved by having that vendor rebuild their library, something I asked them to do because the warnings drove me nuts, but which they seem unable to do. 这种情况下的问题可以通过让供应商重建库来解决,我要求他们这样做是因为警告使我发疯,但他们似乎做不到。 In the end I ditched their technology and replaced it with something else. 最后,我放弃了他们的技术,并用其他东西代替了它。 (Grin) (咧嘴)

These errors are to do with the architectures you are using and the resources you are referencing. 这些错误与您正在使用的体系结构以及所引用的资源有关。 I don't understand the reasons myself, but if you want them to go away, go to Build settings, then Build Options and then select Debug information format and select DWARF. 我自己不明白原因,但是如果您希望它们消失,请转到“构建设置”,然后依次选择“构建选项”,“调试信息格式”和“ DWARF”。

I am on the other side of this, building a library for others to use, and I was able to alter the library project by setting 'GCC_GENERATE_DEBUGGING_SYMBOLS = NO' in the Build Settings to make those warnings go away in an Application project that consumed the output framework. 我在另一方面,建立一个供其他人使用的库,并且能够通过在“构建设置”中设置“ GCC_GENERATE_DEBUGGING_SYMBOLS = NO”来更改该库项目,以使那些警告在消耗了输出框架。

This isn't a solution to your problem, but if you're in contact with this vendor, you could pass this along. 这不是解决问题的方法,但是如果您与该供应商联系,则可以通过。

The other answers contain helpful information but I wish to put the real answer down succinctly: 其他答案包含有用的信息,但我希望简明扼要地写下真正的答案:

You can not fix this, and the meaning of the errors is simple: The current linker sees these library files as containing elements that can not be opened. 您无法解决此问题,错误的含义很简单:当前链接器将这些库文件视为包含无法打开的元素。

To solve the warnings, contact the vendor and get a recompiled library that has been rebuilt with a later version of CLANG. 要解决警告,请与供应商联系并获取已使用更高版本的CLANG重建的重新编译的库。

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

Another reason these warnings could occur is because of incorrect symbol stripping settings for release builds in a project. 这些警告可能发生的另一个原因是由于项目中发布版本的符号剥离设置不正确。 Contact the author of the framework and tell them to make a new binary with the proper symbol stripping settings. 与框架的作者联系,并告诉他们使用正确的符号剥离设置制作一个新的二进制文件。

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

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