在 iOS5 中实现库时获取“apple mach-o linker id error undefined symbols for architecture i386”

Posted

技术标签:

【中文标题】在 iOS5 中实现库时获取“apple mach-o linker id error undefined symbols for architecture i386”【英文标题】:Getting "apple mach-o linker id error undefined symbols for architecture i386" when implement a Library in iOS5 【发布时间】:2012-01-30 00:10:34 【问题描述】:

我在 XCode 4 中实现 PayPal 库时遇到了麻烦。 尝试构建项目时出现此错误:

架构 i386 的未定义符号: “_xmlParseMemory”,引用自: -[AdaptivePaymentsSOAP11Binding_CancelPreapproval connectionDidFinishLoading:] 在 libPayPalMPL.a(AdaptivePayments.o) -[AdaptivePaymentsSOAP11Binding_ConfirmPreapproval connectionDidFinishLoading:] 在 libPayPalMPL.a(AdaptivePayments.o) -[AdaptivePaymentsSOAP11Binding_ConvertCurrency connectionDidFinishLoading:] 在 libPayPalMPL.a(AdaptivePayments.o) - [AdaptivePaymentsSOAP11Binding_ExecutePayment connectionDidFinishLoading:] 在 libPayPalMPL.a(AdaptivePayments.o) -[AdaptivePaymentsSOAP11Binding_GetPaymentOptions connectionDidFinishLoading:] 在 libPayPalMPL.a(AdaptivePayments.o) -[AdaptivePaymentsSOAP11Binding_PaymentDetails connectionDidFinishLoading:] 在 libPayPalMPL.a(AdaptivePayments.o) - [AdaptivePaymentsSOAP11Binding_Pay connectionDidFinishLoading:] 在 libPayPalMPL.a(AdaptivePayments.o) ...

在网上搜索我发现这是从 XC3 传递到 XC4 时的典型错误。也许图书馆没有更新。但是您在那里看到的那个文件 .a 似乎是不可编辑的。

【问题讨论】:

你检查过库是否在Build Phases > Link Binary With Libraries吗? 已经在里面了,还有什么? 我解决了。必须加载 3 个框架:libXML、Security 和 libz。 让它成为一个答案并接受它,其他人可以从您的经验中受益。 【参考方案1】:

解决了。必须加载 3 个框架:libXML、Security 和 libz。

【讨论】:

为什么 PayPal 团队不直接说我们需要这些库?妈的! How to load a framework 感谢您的回答,真的帮助了我。 PayPal MPL 文档真的很缺乏!

以上是关于在 iOS5 中实现库时获取“apple mach-o linker id error undefined symbols for architecture i386”的主要内容,如果未能解决你的问题,请参考以下文章

如何摆脱 Apple Mach-O 链接器错误?

ios -Apple Mach-O Linker Error

在 OCUnit 中使用核心数据类的 Apple Mach-O 链接器错误

如何修复 Apple Mach-O 链接器错误

Apple mach -o- 链接器错误

ios- Apple Mach-O 链接器错误 [重复]