【发布时间】:2012-09-23 09:46:50
【问题描述】:
我有一个使用 zbar-sdk(条形码扫描库)的项目。
将我的机器更新到 xcode 4.5 和 ios6sdk 后,我遇到了一些麻烦。
我能够在不涉及我的项目的任何内容的情况下构建到模拟器。这是使用最新的 zbar 1.2 库。
然后我想构建到我的 ios6 设备上进行测试,结果出现错误。
在 zbar 开发人员论坛上进行了一番谷歌搜索后,我发现我需要获取 zbar 源代码并为 armv7 和 armv7s 构建 libzbar.a,因为 zbar 开发人员尚未完成这项工作。
见 - http://sourceforge.net/projects/zbar/forums/forum/1072195/topic/5728912
所以我这样做了,将更新后的 libzbar.a 重新导入到我的项目中。然后我为我的设备构建,它工作!我能够将我的应用程序放到我的测试设备上,并且 zbar 条形码库运行良好。
我以为事情就这样结束了,但不幸的是没有。
然后我尝试再次构建到模拟器(ios6),结果失败了。
无论如何,我无法同时为设备和模拟器构建此项目并使用相同的设置:(
我在构建自己的 libzbar.a 文件时的 libzbar.a 项目设置:
架构:标准(armv7、armv7s)$(ARCHS_STANDARD_32_BIT)
仅构建活动架构:否
有效架构:armv7 armv7s
我的项目设置(对于 myapp)为:
架构:标准(armv7、armv7s)$(ARCHS_STANDARD_32_BIT)
仅构建活动架构:否
有效架构:armv7 armv7s
基础 SDK:iOS6
iOS 部署目标:iOS 5.0
以及尝试构建到模拟器时的错误:
ld: warning: ignoring file /Users/blah/iOS App/myapp/ZBarSDK/libzbar.a, missing required architecture i386 in file /Users/blah/iOS App/myapp/ZBarSDK/libzbar.a (2 slices)
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_ZBarReaderViewController", referenced from:
objc-class-ref in mycontroller.o
"_ZBarReaderControllerResults", referenced from:
-[mycontroller imagePickerController:didFinishPickingMediaWithInfo:] in mycontroller.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我已尝试调整 libzbar.a 项目设置(例如,将构建活动架构设置为“YES”),但这只会导致模拟器或设备都无法正常工作。
它可以在设备上运行但不能在模拟器上运行,这让我觉得是一些奇怪的架构/项目设置导致了这种情况。
非常感谢任何帮助!
【问题讨论】:
标签: xcode armv7 xcode4.5 zbar-sdk ios