Zbar SDK无法在iOS6中工作
我在ZBar中使用iOS5进行扫描,效果很好。Zbar SDK无法在iOS6中工作
现在更新到iOS6后,它不工作。它显示以下错误。
ld: file is universal (3 slices) but does not contain a(n) armv7s slice: /Users/mac4/Desktop/my desktop/My app/MyApp name 20:09:12 /MyApp name/ZBarSDK/libzbar.a for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我身边出了什么问题?
我最近面临同样的问题。问题似乎是ZBar SDK尚未准备好用于armv7s架构。
我解决了这个问题是这样的:
- 前往zbar和网页,并导航到Mercurial库(direct link)
- 下载zbar和仓库为拉链。
- 解压文件并导航到名为“iphone”的子文件夹。
- 打开XCode项目。
- 删除“Examples”文件夹(该文件夹在我的机器上导致生成错误)。
- 点击“CMD + B”并构建源代码。
- 找到你的新libzbar.a文件。 (用户/库/开发人员/ Xcode/DerivedData/zbar ...)
- 用新项目替换项目中的旧libzbar.a文件。
- 点击“CMD + R”,你很好走。
你的二进制库没有armv7s的代码。所以你应该重新编译当前的架构。
在Xcode中,去你的目标, 变 'Valid Architectures
' 的设置
从
armv7,armv7s
到
armv7
这一变化意味着你的应用程序不会有机可乘可能优化新的iPhone5处理器,但是您不必等待第三方库升级或混淆十六进制编辑器。
作为一个单独的答案评论中指出,为解决这个合适的方法是编译库,包括正确的体系结构。说明和可下载的软件包位于http://www.federicocappelli.net/2012/10/05/zbar-library-for-iphone-5-armv7s/ – adriandz
Kappe,这是不正确的。 armv7s是armv7的超集,所以在armv7上工作的任何东西都可以在v7上运行。如果库包含使用armv7s功能的代码(即用于提高速度),则会丢失这些功能。只有在图书馆只能在v7上工作**时,您才会遇到问题。 – marimba
adrianz,你是对的,编译lib是合适的方法 - 如果你知道你在做什么。但是我们讨论的是一个没有增强armv7s的库,所以重新编译只需添加正确的标志而不改变其他任何东西2)一个复杂的代码块,包含大量的目标和开关3)可能很快就会发布无论如何,适当的v7s支持。你是否想为自己编译一个带有所有可能已知和未知问题的库,而不是等待维护人员做同样的事情,同时使用这个快捷方式当然取决于你。 – marimba
重新编译源代码,我下载了zbar的源代码并编译到新项目中。这很简单。
克隆Mercurial存储库并使用Xcode进行构建。这很容易。这里有一个链接库:
汞的来源下载/重新编译教程是伟大的,但你并不需要做的一切。
只需浏览到http://sourceforge.net/projects/zbar/files/iPhoneSDK/beta/并下载ZBarSDK-1.3.1.dmg,并且最新的体系结构(在我的例子中是armv7,armv7s)都可以使用。
更新:
你们中的一些报道的XCode 5 ZBarSDK问题,iOS的7或架构arm64 ...好,我今天回到这个项目,并经历过类似的问题,发现有一个ZBarSDK编译为与iOS 7配合使用的库:http://www.nerdvision.net/app-development/ios/zbar-sdk。我只是用新的文件替换旧文件,并编译了我的项目。请注意,我项目的Build Settings中的体系结构设置为amrv7,arm64($ ARCHS_STANDARD),Base SDK设置为iOS 8.0,并且我将Build Active Architectures Only标志设置为Yes。
有一个问题在这里SO一下:zbar SDK dont work for armv7s(iPad 4 iOS 7)
感谢@cdescours的小费!
我有同样的问题,但我只是增加armv6
和armv7
然后它适用于iOS6。只需插入armv6
。
在下载了他博客中提供的教程代码RDC后,出现同样的问题。非常有用的帖子,但这里最有用的答案是由RacZo在3/29发布。我只是下载了原始的ZBarSDK-1.3.1.dmg映像,从我的项目中删除了ZBarSDK并用原来的替换。完成。
我正在学IOS开发。经过几天的挖掘,
这里是tutorial安装ZBar SDK。
1,接受的答案是正确的,但有一些限制。 (试过,有效!)
2,替代解决方案是here。 (试过,效果!)
3,最好是采用脂构建然后分离将它们绑定的所有不同的架构:(!试过,辉煌)Great Solution
一些读数了解这些架构:
添加编译建立armv7s为zbar和SDK --libzbar.a文件 从这个链接准备:
http://www.federicocappelli.net/2012/10/05/zbar-library-for-iphone-5-armv7s/
有效的体系结构: 的ARMv7 armv7s
在设备或模拟器上运行时可以工作。当您尝试构建产品时,我仍然遇到此错误。 “_OBJC_CLASS _ $ _ ZBarReaderController”,从引用: objc级-REF IN DealElementDisplayController.o “_ZBarReaderControllerResults”,从引用: - [DealElementDisplayController imagePickerController:didFinishPickingMediaWithInfo:]在DealElementDisplayController.o LD:符号(多个)未发现for architecture armv7 – kgibbon
@kgibbon你是对的。如果你使用本教程(http://www.federicocappelli.net/2012/10/05/zbar-library-for-iphone-5-armv7s/),它会工作得很好。关键是合并输出文件。 – Microns
这是行不通的。只是一件事,当你去直接链接点击代码而不是iPhone和点击“下载快照”。其余的说明完美地工作。谢谢。 – rharvey