gpt4 book ai didi

ios - Xcode 5 中 libzbar.a 的链接器错误

转载 作者:可可西里 更新时间:2023-11-01 03:01:38 25 4
gpt4 key购买 nike

在我将 ZBar Sdk 集成到我的项目中后,我的 xcode 5-DP 开始显示以下警告:

"ld: warning: linking ObjC for iOS Simulator, but object file (/Documents/Projects/Project/Utility/ZBarSDK/libzbar.a(ZBarReaderViewController.o)) was compiled for MacOSX "

最佳答案

构建 ZBar 库

前段时间我在使用 ZBar 时遇到了不同的问题,并在这里找到了一组有用的说明:https://web.archive.org/web/20170128181158/http://www.federicocappelli.net/2012/10/05/zbar-library-for-iphone-5-armv7s/

基本上,说明会告诉您如何使用 Mercurial 检查源代码,然后编译您自己的 libzbar.a 文件。这应该可以解决您的问题。

就在昨晚,事实上,我最终不得不再次按照说明操作,因为我的 ZBar 版本在更新到 Xcode 5 后无法运行。我鼓励您点击上面的链接,但我打算主要是在此处抄袭它,以及我为新 iPhone 平台添加的一些步骤。

Download并为 Mac 安装 Mercurial。我为 OS X 10.8 使用了最新的一个。 (安装屏幕,当您启动安装程序时,似乎仍然显示 10.7,所以不要感到惊讶。)

安装 Mercurial 后,使用以下命令下载 ZBar 的源代码:

    hg clone http://zbar.hg.sourceforge.net:8000/hgroot/zbar/zbar 
cd zbar
hg checkout iPhoneSDK-1.3.1
open iphone/zbar.xcodeproj

在 Xcode 的菜单中,选择“Product > Scheme > libzbar”,然后选择“Product > Scheme > Edit Scheme…”。 (您会收到一条警报,告诉您项目已更新为使用 LLBD 调试器。耶!)

Step 1: Edit Scheme

在构建配置中选择“运行”,然后单击“确定”。

接下来,我们将为设备和模拟器编译 libzbar。在 Project and Targets 列表中,选择 libzbar 目标并单击 Build Settings 选项卡。验证您的架构设置,如屏幕截图所示。 (确保它说的是 iOS 和 arm64 armv7 armv7s。)

此外,不要忘记将 Architectures 更改为Standard architectures (armv7, armv7s, arm64),否则您的项目将无法使用 arm64 进行编译。 (这在屏幕截图上没有正确显示)

Step 2: Configure Architecture

现在,这是我昨晚发现的部分。我的部署目标设置为 iOS 3.1。如果您尝试使用该设置在 Xcode 5 中进行编译,则会出现错误。我将其更改为 iOS 7.0。

Step 3: Configure Deployment Target

在验证您的设置并根据需要更改任何设置后,运行构建。返回“产品 > 方案 > 编辑方案...”并选中“目标”下拉菜单。 (见上面的截图。)我的是 iPhone Retina(3.5 英寸)。将其更改为 iOS Device 并再次运行 Build。您现在已经构建了两次库:一次用于模拟器,一次用于设备。您需要结合这两个库。在终端中转到以下目录:

    cd ~/Library/Developer/Xcode/DerivedData

里面有一堆名字神秘的目录,其中一个以“zbar”开头。这是我的完整路径,例如:

    /Users/mario/Library/Developer/Xcode/DerivedData/zbar-dwpkaidpztsnjafveraeowkkjvdo

进入那个 zbar 目录,然后切换到 Build/Products 目录。

    cd Build
cd Products

在那里你会看到两个文件夹:Release-iphoneos 和 Release-iphonesimulator。 (每个里面都有一个 lizbar.a 文件。)将它们与以下命令结合起来:

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

您现在已经创建了一个您应该使用的通用库 (libzbar.a),替换了您的 ZBar 发行版附带的库。它位于相同的 Build/Product 目录中。

正如我所说,我基本上抄袭了上面链接的作者 Cappelli 先生的说明,并将它们更新为最新的 Xcode。

关于ios - Xcode 5 中 libzbar.a 的链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18740304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com