xcode 5.1 - 架构x86_64(zbar)的未定义符号

时间:2014-03-21 13:58:52

标签: ios objective-c xcode architecture

我已将我的x代码版本从5.0更新为5.1 我在我的项目中使用ZBarSDK来扫描条形码。在模拟器'iPhone Retina(3.5英寸)'和'iPhone Retina(4英寸)',它工作正常。但是当我想用模拟器'iPhone Retina(4英寸64位)'构建时,它会出现以下错误。

ld: warning: ignoring file /Users/sayan/Desktop/ProjectAtanu/Omlis/Custom Classes/ZBarSDK/libzbar.a, missing required architecture x86_64 in file /Users/sayan/Desktop/ProjectAtanu/Omlis/Custom Classes/ZBarSDK/libzbar.a (3 slices)
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_ZBarReaderViewController", referenced from:
 objc-class-ref in HomeViewController.o
"_ZBarReaderControllerResults", referenced from:
-[HomeViewController imagePickerController:didFinishPickingMediaWithInfo:] in  HomeViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

架构:标准架构(arm64,armv7,armv7s) - $(ARCHS_STANDARD)
有效的架构:arm64,armv7,armv7s
基础SDK:最新的IOS(IOS 7.1)
iOS部署目标:iOS 6.1

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:30)

使用PODS

pod 'ZBarSDK'

重新编译ZBar for iphone 5.您可以从here下载重新编译的ZBAR以跳过以下内容

步骤

  1. 下载源代码(mac必须为Mercurial):

  2. 打开终端并运行以下命令

    一个。 hg clone http://zbar.hg.sourceforge.net:8000/hgroot/zbar/zbar

    湾cd zbar

    ℃。 hg checkout iPhoneSDK-1.3.1

    d。打开iphone / zbar.xcodeproj

  3. 在xcode项目中编辑“libzbar”方案并选择Build in Build configuration

  4. 转到“架构

    之后的构建设置”

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

    有效架构 - > arm64,armv7 armv7s

  5. 设备模拟器编译libzbar,此处配置为:

  6. 找到已编译的libzbar.a并使用Teminal.app进入该文件夹,

    在我的案例中:/ Users / kappe / Library / Developer / Xcode / DerivedData / zbar-gyozyrpbqzvslmfoadhqkwskcesd / Build / Products

    在此文件夹中,您应该有两个子文件夹Release-iphoneos和Release-iphonesimulator

  7. 使用xcode命令行工具构建通用库:

    lipo -create Release-iphoneos / libzbar.a Release-iphonesimulator / libzbar.a -o libzbar.a

    现在您可以在设备和模拟器中使用创建的libzbar.a。

  8. 参考:http://www.federicocappelli.net/2012/10/05/zbar-library-for-iphone-5-armv7s/

答案 1 :(得分:2)

这意味着不支持/构建新的archtitecture库。

对于zBar this answer已链接到教程,您可以在其中下载源代码并将lib更新为新架构。

通常用于第三方服务。他们将发布添加了体系结构的新lib,因此请务必查看他们的网站以获取更新的SDK。

答案 2 :(得分:2)

在“其他图书管理员标志”和“其他链接标志”下添加构建设置:$(OTHER_LDFLAGS)