9

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

我使用有效架构构建我的项目:armv7、armv7s 和 arm64。切换到最新的环境(Xcode)后,我在相同的架构中重建 libzbar.a 库(我是根据在 Xcode-5 中的链接器错误中找到的解决方案完成的)

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

4

6 回答 6

27

我有同样的问题,我以这种方式解决了:

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

请让我知道这对你有没有用。

于 2015-01-07T22:28:00.797 回答
12

为 iphone 6 重新编译 ZBar

脚步

下载源代码(你必须有 Mercurial for mac):

打开终端并运行以下命令

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

湾。光盘zbar

C。hg checkout iPhoneSDK-1.3.1

d。打开 iphone/zbar.xcodeproj

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

转到构建设置集以下架构

一个。架构 - >标准架构(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。

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

于 2014-09-30T12:26:40.247 回答
5

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

道路:

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

于 2015-01-09T14:21:41.863 回答
5

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

armv7 armv7s arm64 i386 x86_64

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

xcrun -sdk iphoneos lipo -info libzbar.a
于 2014-03-26T14:52:25.963 回答
3

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

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

请让我知道这对你有没有用。

于 2014-03-26T14:44:53.233 回答
2

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

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

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

于 2014-10-01T18:08:01.070 回答