【问题标题】:Apple Mach-O Linker Error - Phonegap Paypal PluginApple Mach-O 链接器错误 - Phonegap Paypal 插件
【发布时间】:2013-05-14 09:39:35
【问题描述】:

您好,我正在尝试实现 Phonegap Paypal 插件 (https://github.com/searchtool/PayPalPlugin),但无法编译 - 我在 Xcode 中收到以下错误..

Undefined symbols for architecture armv7s:
 "_OBJC_CLASS_$_PayPalInvoiceItem", referenced from:
  objc-class-ref in SAiOSPaypalPlugin.o
 "_OBJC_CLASS_$_PayPalPayment", referenced from:
  objc-class-ref in SAiOSPaypalPlugin.o
 "_OBJC_CLASS_$_PayPal", referenced from:
  objc-class-ref in SAiOSPaypalPlugin.o
ld: symbol(s) not found for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我遵循了类似 SO 帖子中的建议 - 通过右键单击项目并使用“将文件添加到”方法添加的所有文件。但总是得到链接器错误!不知道从哪里开始 - 有什么建议吗?

【问题讨论】:

  • 尝试通过设置Build Active Architecture Only的值来启用YES
  • 干杯 Deepesh - 不过运气不好..
  • 你检查插件是否列在Target -> Build Phases -> Link with binary libraries
  • 嗨 Deepesh - 是的,它在里面

标签: ios xcode cordova


【解决方案1】:

您尝试使用的静态库尚未针对 armv7s 架构编译,只有 armv6 和 armv7。要对此进行测试,而不是启用Build Active Architecture Only,请尝试从您的架构中删除 armv7s,看看是否可行。如果是这样,您就可以将库编译到 armv7s。

【讨论】:

  • Cheers lxt - 虽然当我启用“仅构建架构”时它不起作用,那么这个修复会起作用吗?另外-架构下拉菜单中没有armv6的选项-所以我不知道如何删除/更改架构?抱歉,我的 xcode 经验非常有限!
  • 你应该可以在里面添加armv7。armv6已被弃用,这就是你看不到它的原因。您的活动架构可能设置为 armv7s,这就是它不起作用的原因。
  • 干杯 - 我已经编辑了“有效架构”字段并删除了 armv7s -(这是这样做的方法吗?) - 不幸的是,我仍然收到错误
【解决方案2】:

此插件已被重新编写,不应再包含这些错误。可以在https://github.com/SnareChops/PayPalPlugin找到,并且已经在PayPal的沙盒环境中测试成功。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-06
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-09
    相关资源
    最近更新 更多