Zbar SDK - 缺少所需的架构 x86_64

Posted

技术标签:

【中文标题】Zbar SDK - 缺少所需的架构 x86_64【英文标题】:Zbar SDK - missing required architecture x86_64 【发布时间】:2014-03-26 12:00:21 【问题描述】:

我在最近的 Xcode 5.1 中构建应用程序时遇到了一个问题。编译失败,出现“架构 x86_64 的未定义符号”错误。

我使用有效架构构建我的项目:armv7、armv7s 和 arm64。切换到最新的环境(Xcode)后,我在相同的架构中重建 libzbar.a 库(我已经根据在以下位置找到的解决方案完成它:Linker Error in Xcode-5)

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

【问题讨论】:

你下载的Zbar版本好像不支持64位,必须的。您可以尝试从源代码构建 Zbar。 是的,我做到了,我已经根据具有适当架构的源代码重建了 libzbar.a。但是它对我没有帮助,有人可以使用它吗? 你添加了所有必需的框架吗??? 试试这个***.com/a/23409994/2684720 【参考方案1】:

我遇到了同样的问题,然后我就这样解决了:

从您的项目中删除文件夹 ZBarSDK 的引用。 从link 下载 armv7、arm7s 和 armv64 的版本。 将旧文件夹替换为新文件夹,(保存副本以防万一) 将新文件夹添加到您的项目中。 清理项目并构建。

让我知道它是否适合你。

【讨论】:

On the github, ZBarSDK-for-ios, there is a builded project there. 非常感谢你救了我的命【参考方案2】:

为 iphone 6 重新编译 ZBar

步骤

下载源代码(Mac版必须有Mercurial):

打开终端并运行以下命令

一个。 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”方案并在 Build configuration 中选择 Release

按照架构转到构建设置集

一个。架构 - >标准架构(armv7,armv72,arm64)

b.有效架构 -> 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。

参考:xcode 5.1 - Undefined symbols for architecture x86_64 (zbar)

【讨论】:

【参考方案3】:

确保您的 libzbar.a 包含项目中所需的所有架构。您可能需要为设备和模拟器构建以下内容:

armv7 armv7s arm64 i386 x86_64

您可以使用以下命令对此进行测试:

xcrun -sdk iphoneos lipo -info libzbar.a

【讨论】:

我听不懂。我可以用 arv7 arv7s arm64 得到一个。另一个使用 armv7 i386 或 armv7 x86_64 我不知道为什么。你能帮帮我吗? 同样的事情发生在我身上。你能帮我如何用 x86_64 构建它吗?【参考方案4】:

对我来说:xcode 6,iphone 6 使用 fpauer 的方法!

方式:

从您的项目中删除文件夹 ZBarSDK 的引用。 从 this 链接下载 armv7、arm7s 和 armv64 的版本。 将旧文件夹替换为新文件夹,(保存副本以防万一) 将新文件夹添加到您的项目中。 清理项目并构建。

【讨论】:

【参考方案5】:

我昨天遇到了同样的问题,我终于可以用 64 位模拟器构建了。

在您尝试链接后,我替换了库和所有头文件。但这还不够。然后,我还将 libzbar.a 从 Link Binary With Libraries on Bulid Phases 取消链接并重新添加该库。然后它开始工作了。

让我知道它是否适合你。

【讨论】:

嗨,你能告诉我如何用 xcode 6 为 x86_64 编译 libzbar 吗?我正在使用 iOS 设备进行构建,但它只提供 armv7 和 arm64,对于 iPhone6 模拟器也是如此。请让我知道我可以做些什么来为 x86_64 架构构建它。 Tushar - 你需要生成一个胖静态库。 gist.github.com/rehos/7856163【参考方案6】:

我在 ZBar 火车上也有一段时间处理这些问题,因为他们没有更新 SDK。幸运的是,如果您的应用程序只需要支持 iOS7 及更高版本(大多数 iOS 用户现在都在使用它!),现在 AVFoundation 中提供了 QR/条形码阅读支持,因此您可以非常轻松地构建自己的阅读器。查看本教程:

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

那就尽情享受 Apple 支持的二维码阅读器的美丽吧!

【讨论】:

以上是关于Zbar SDK - 缺少所需的架构 x86_64的主要内容,如果未能解决你的问题,请参考以下文章

SDL 缺少 x86_64 架构

linux oracle 系统安装oracle 11g所需的安装包和相关依赖包,无软件

gcc:架构 x86_64 的未定义符号,缺少 vtable

缺少所需的架构 arm64

问题:在 SLES12 中安装 edb-as12-server 时,没有提供 llvm6-6.0.1-43.25.sles12.x86_64 所需的 libjsoncpp.so.1()(64bit)

MATLAB:mex-compile 上缺少框架 – 架构 x86_64 的未定义符号