苹果Mach-O的连接错误 - PhoneGap的贝宝插件

问题描述:

你好我想实现的PhoneGap贝宝插件(https://github.com/searchtool/PayPalPlugin),但不能让它编译 - 我收到的Xcode以下错误..苹果Mach-O的连接错误 - PhoneGap的贝宝插件

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帖子中的建议 - 通过右键单击项目并使用“添加文件到”方法添加所有文件。但总是得到链接错误!不知道从哪里开始 - 有什么建议?

+0

尝试通过设置其值'YES'来启用'Build Active Architecture Only' – 2013-05-14 09:47:01

+0

Cheers Deepesh - 尽管没有运气.. – Dancer 2013-05-14 09:52:55

+0

您是否检查过插件是否列在'Target - > Build Phases - > Link with binary libraries' – 2013-05-14 10:09:08

您尝试使用的静态库尚未针对armv7架构进行编译,只有armv6和armv7。要测试这个,而不是从你的架构中启用Build Active Architecture Only尝试删除 armv7s,看看是否有效。如果确实如此,那么你可以将图书馆编译成armv7s。

+0

干杯lxt - 虽然它没有工作,当我启用'建立架构只',所以这个修复工作?另外 - 架构下没有armv6选项 - 所以我不知道如何删除/更改架构?对不起,我的xcode体验相当有限! – Dancer 2013-05-14 10:39:27

+0

您应该可以添加armv7。armv6已被弃用,这就是为什么你看不到它。您的活动架构可能设置为armv7s,这就是为什么它不起作用。 – lxt 2013-05-14 10:40:58

+0

欢呼声 - 我编辑了“有效的体系结构”字段并删除了armv7s - (这是否是这样做的?) - 我仍然很遗憾地得到错误 – Dancer 2013-05-14 10:50:11

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