我已将我的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
非常感谢任何帮助!
答案 0 :(得分:30)
使用PODS
pod 'ZBarSDK'
或
重新编译ZBar for iphone 5.您可以从here下载重新编译的ZBAR以跳过以下内容
步骤
下载源代码(mac必须为Mercurial):
打开终端并运行以下命令
一个。 hg clone http://zbar.hg.sourceforge.net:8000/hgroot/zbar/zbar
湾cd zbar
℃。 hg checkout iPhoneSDK-1.3.1
d。打开iphone / zbar.xcodeproj
在xcode项目中编辑“libzbar”方案并选择Build in Build configuration
转到“架构
之后的构建设置”一个。 体系结构 - >标准体系结构(armv7,armv72,arm64)
湾有效架构 - > arm64,armv7 armv7s
为设备和模拟器编译libzbar,此处配置为:
找到已编译的libzbar.a并使用Teminal.app进入该文件夹,
在我的案例中:/ Users / kappe / Library / Developer / Xcode / DerivedData / zbar-gyozyrpbqzvslmfoadhqkwskcesd / Build / Products
在此文件夹中,您应该有两个子文件夹Release-iphoneos和Release-iphonesimulator
使用xcode命令行工具构建通用库:
lipo -create Release-iphoneos / libzbar.a Release-iphonesimulator / libzbar.a -o libzbar.a
现在您可以在设备和模拟器中使用创建的libzbar.a。
参考: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)