【问题标题】:How to make libtiff for an Xcode project and an iOS application?如何为 Xcode 项目和 iOS 应用程序制作 libtiff?
【发布时间】:2013-06-14 16:37:18
【问题描述】:

我一直在 stackoverflow 和 Google 上搜索正确的方法来编译 libtiff 库并将其添加到我在 Xcode 中的现有 iOS 项目中。

到目前为止我做了什么:

编辑:

在决定遵循stackoverflow 上的此建议后,我已将 libtiff 下载到我的 Mac。我使用版本3.9.6 并像在这个tutorial 和它的sequel 关于SDK5 一样构建它。在那里,在 cmets 中,我找到了 script 我可以找到 adapt。我已将生成的“依赖项”文件夹添加到我的 Xcode 项目中,几乎就像建议的 rakmoh 一样。

但是,我一#include tiffio.h 就收到了链接器错误:

Undefined symbols for architecture armv7:  "_inflateEnd", referenced from:
  _PixarLogCleanup in libtiff.a(tif_pixarlog.o)
  _ZIPSetupEncode in libtiff.a(tif_zip.o)
.
... some more...
.
ld: symbol(s) not found for architecture armv7 
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我也尝试了libtiff的最新版本,但这并没有改变什么,所以我回到了3.9.6,因为它与项目中的其他软件兼容。然后我问了一位同事,他发现这是 libz 库丢失。从他看到的日志文件中,它一定在libtiff 的编译过程中存在,并且我的 Xcode 项目中的链接器仍然缺少它。瞧!当我将它添加到框架中时(带有小 + 号并浏览列表以查找 libz.dylib),我的空测试项目已编译。

在写答案之前,我想再做一些测试,但我已经将成功的shell脚本更新为pastebin

感谢您的帮助!

【问题讨论】:

标签: ios xcode libtiff


【解决方案1】:

以下是在 XCode 4.6.2 中将库添加到您的 iOS 项目的步骤(在旧版本的 XCode 中应该类似):

  • 在项目导航器(左窗格)中单击您的项目名称
  • 点击您的目标并选择“构建阶段”
  • 在“Link Binary With Libraries”下,单击“+”(在现有列表的末尾)
  • 在弹出窗口中选择“添加其他..”按钮,将打开文件浏览器窗口
  • 浏览并选择要添加的库,然后单击“打开”

【讨论】:

  • 非常感谢。到目前为止,我确信该库也没有被编译为适合 iOS。我肯定没有很好地提出这个问题。我将对其进行编辑以澄清我的问题。
【解决方案2】:

我已经粘贴了一个bash script,它可以在 Mac 上为 iOS 6.1 交叉编译 libtiff 版本 3.9.6,以便在设备和模拟器中使用。您将不得不根据您的需要对其进行调整。另请参阅此tutorial 以获取提示。它为两个编译目标创建了一个胖库。

rakmohs 的回答也是正确的,但只是部分解决方案。您在他建议的“添加其他...”对话框中添加带有胖库的文件夹。

然后你还要添加 libz.dylib!之后,我可以在我的设备和模拟器上的应用程序中使用libtiff

【讨论】:

  • 看起来这只适用于 Xcode 4。它可以更新为适用于 Xcode 5 吗? (gcc 编译器不再可用)
  • 感谢您提供的信息。我在这方面的工作已被取消,因为以这种方式处理大图像数据太慢了。我们不再尝试用 iPhone 来做这件事。现在我知道这是个好主意的另一个原因:(
  • 我最近发现了 GPUImage 库,它有很多过滤器,并且在 iPhone 上运行速度非常快。 github.com/BradLarson/GPUImage
  • 查看问题下方的Juan Catalans 评论以获得更新的答案。
猜你喜欢
  • 2019-10-21
  • 1970-01-01
  • 2014-08-18
  • 1970-01-01
  • 1970-01-01
  • 2013-10-28
  • 2011-05-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多