苹果Mach-O链接器错误构建用于分发时的ZBarSDK错误

问题描述:

当使用ZBarSDK(iOS的条形扫描库)时,我刚刚得到了同样的错误。当我将它上传到我的开发设备或在iOS6模拟器上测试时,它运行良好。但是,当我尝试运行它分配失败:苹果Mach-O链接器错误构建用于分发时的ZBarSDK错误

(null):文件是通用的(3片),但不包含(n)armv7s切片:/用户/ quique123 /文件/ iPhone应用程序/ ScanThis /ZBarSDK/libzbar.a用于架构armv7s

其中libzbar.a是来自sdk的库。

任何想法?

+0

我发布了一个很好的解决方案。点击此处查看http://*.com/a/12561312/1693858 – Microns

只需从目标阿吉拉尔设置有效的架构去除不良的架构和你去好:)

+1

稍后,您可能需要重建zbar以支持arm7。这个线程可能是一个很好的起点http://sourceforge.net/projects/zbar/forums/forum/1072195/topic/5081620 – Zdenek

+1

注意:通过这样做你的应用程序将不再适用于iPhone 5,它运行在armv7上建筑。 – syntagma

+0

如何移除?我是指从哪个文件夹。给我一些步骤 –

当你有你的目标选择>构建设置(所有)>架构>有效的架构。

当您遇到上述错误时,通过双击该行并选择armv7s并按下( - )按钮来移除armv7s(现在可能是[armv7 armv7s])。

在我的情况下,这解决了错误。 不知道这会不会有什么缺点进一步上..

编辑:现在我相信这至少有一个缺点:该项目是不能编译为iPhone 5 该解决方案,是重新编译zbar和源,如下所述:ZBar library for iPhone 5(ARMV7s)

+0

它的工作很好。 –

打通zbar和代码水银代码回购

http://zbar.hg.sourceforge.net/hgweb/zbar/zbar/summary

转到BZ2/ZIP/GZ链接下载电流源(在优选格式)

http://zbar.hg.sourceforge.net/hgweb/zbar/zbar/archive/fa84e0427c24.tar.bz2(因为这后日期的) http://zbar.hg.sourceforge.net/hgweb/zbar/zbar/archive/fa84e0427c24.zip(因为这后日期的) http://zbar.hg.sourceforge.net/hgweb/zbar/zbar/archive/fa84e0427c24.tar.gz(因为这后日期的)

打开 'iphone' 子目录

打开 'zbar.xcodeproj'文件

在该方案中的菜单中选择libzbar并建立自己的二进制版本在支持的体系结构

打开DerivedData该项目并导航到构建/临管道/

查找所有文件夹的libzbar.a

+0

我试图使用这个建议,但我似乎无法在构建之后找到libzbar.a文件。生成的唯一libzbar文件是.rc文件。有关我可能错过的设置的任何提示? –

+1

@nj我编辑了我的答案,以便更好地指导您完成最后的步骤,希望有所帮助。 – sbonami

+0

嗨斯科特,这个解决方案为我工作。但是,我必须使用两个libzbar.a文件 - 1.对于模拟器2.对于设备。有没有什么办法可以使用两个libber.a。在编译libber.a时,我为模拟器设置了iOS设备和iOS模拟器。难道我做错了什么? –

我刚刚更换的构建设置/有效的体系结构:“ARMv7的” 2行“ARMv6的”和“的ARMv7”

(平时我当提交到iTunes,但在设备不进行调试)

只是删除了“armv7s”以前只得到这个连接错误,这将工作:)

您可以在URL下载ZBarSDK的新建下方。

http://sourceforge.net/projects/zbar/files/iPhoneSDK/beta/

集 '建设活动体系结构只' 设置为YES释放。我解决了我的问题,因为我面临同样的问题。