2014-03-26 45 views
9

在最近的Xcode 5.1中构建应用程序时,我遇到了一个问题。编译失败,出现“Undefined symbols for architecture x86_64”错误。Zbar SDK - 缺少所需的体系结构x86_64

我用有效架构构建我的项目:armv7,armv7s和arm64。切换到最新的环境(Xcode)后,我重建libzbar.a库在相同的架构(我已经做到了基于解决方案找到在:Linker Error in Xcode-5

也许有人也有同样的问题,最后他解决了它,请与解决方案分享:)

+0

看来您下载的Zbar版本不支持64,这是必需的。您可以尝试从源代码构建Zbar。 – rckoenes

+0

是的,我做到了,我已经基于源代码和适当的体系结构重建libzbar.a。然而,它并没有帮助我,它是谁的作品? – mbutan

+0

是否添加了所有必需的框架? – Mohit

回答

3

我昨天有同样的问题,我终于能够与64位模拟器构建。

在您尝试的链接之后,我替换了库和所有头文件。但这还不够。然后,我还将链接二进制库中的libzbar.a与Bulid Phases上的库链接关联,然后重新添加该库。然后它正在工作。

让我知道它是否适合你。

+0

嗨,你可以让我知道如何编译xcode 6的x86_64 libzbar?我用iOS设备构建,但它只给出armv7和arm64,对于iPhone6模拟器也是如此。请让我知道我能做些什么来为x86_64构架构建它。 –

+0

Tushar - 你需要生成一个胖的静态库。 https://gist.github.com/rehos/7856163 – HMHero

+0

Ohk太棒了,它适合我。谢谢。 –

4

确保您的libzbar.a包含您的项目中所需的所有体系结构。您可能需要以下以建立设备和模拟器:

armv7 armv7s arm64 i386 x86_64 

您可以测试这个使用下面的命令:

xcrun -sdk iphoneos lipo -info libzbar.a 
+0

我不明白。我可以用arv7 arv7s arm64获得一个。而另一个与armv7 i386或armv7 x86_64我不知道为什么。你可以帮我吗? – amurcia

+0

我也一样。你能帮助我如何使用x86_64构建它吗? –

9

重新编译zbar和为iPhone 6

步骤

下载源代码代码(您必须拥有适用于Mac的Mercurial):

Op en终端并运行以下命令

a。 hg克隆http://zbar.hg.sourceforge.net:8000/hgroot/zbar/zbar

b。 cd zbar

c。 hg checkout iPhoneSDK-1.3.1

d。打开iphone/zbar.xcodeproj

在Xcode项目编辑“libzbar”方案,并选择发行在构建配置

转到构建设置设置以下架构

一个。体系结构 - >标准体系结构(armv7,armv72,arm64)

b。有效的架构 - > arm64,ARMv7的armv7s

编译libzbar的设备和模拟器,这里的配置:

找到编译libzbar.a并使用端子短的文件夹中去。应用程序,

在我的情况:/用户/ KAPPE /库/开发商/ Xcode中/ DerivedData/zbar和-gyozyrpbqzvslmfoadhqkwskcesd /编译/产品

在此文件夹你,你应该有两个子文件发布-的iPhoneOS和释放 - iphonesimulator

使用Xcode中的命令行工具构建通用的lib:

脂-create发布-的iPhoneOS/libzbar.a释放iphonesimulator/libzbar.a -o libzbar.a

现在你可以使用libzbar.a创建编辑,无论是在设备和模拟器。

编号:xcode 5.1 - Undefined symbols for architecture x86_64 (zbar)

2

我是在火车zbar和以及相当长的处理这些问题,因为它们还没有被更新的SDK一段时间。幸运的是,如果您的应用程序只需支持iOS7以上版本(现在大多数iOS用户都在使用该版本),则AVFoundation中现在支持QR /条码阅读支持,因此您可以轻松构建自己的阅读器。看看这个教程:

http://www.appcoda.com/qr-code-ios-programming-tutorial/

中这是一个完全苹果美容然后晒支持QR码阅读器!

24

我有同样的问题,我解决了这个办法:

  • 从您的项目中删除文件夹ZBarSDK的参考。
  • 从此link下载armv7,arm7s和armv64的版本。
  • 将新文件夹替换为新文件(保存副本)
  • 将新文件夹添加到项目中。
  • 清理项目并建立。

让我知道它是否适合你。

+1

它为我工作。谢谢 – Ujwal

+4

[在github上,ZBarSDK-for-iOS,那里有一个建好的项目。](https://github.com/null09264/ZBarSDK-for-iOS) – AechoLiu

+0

它像一个魅力工作...谢谢 –

5

对我来说:xcode 6,iphone 6工作的fpauer的方法!

方式:

从您的项目中删除文件夹ZBarSDK的参考。 从this链接下载armv7,arm7s和armv64的版本。 将旧文件夹替换为新文件夹(保存副本) 将新文件夹添加到项目中。 清理项目并建立。

相关问题