如何为Xcode项目和iOS应用程序做libtiff?

我一直在寻找上下stackoverflow和谷歌正确的方式来编译和libtiff库添加到我在Xcode中的现有的iOS项目。

我到目前为止所做的:

编辑:

我决定遵循这个build议在stackoverflow后,我已经下载libtiff到我的Mac。 我使用的版本是3.9.6 ,并且像本教程及其关于SDK5的续集一样构build它。 在评论中,我发现了一个我可以适应的脚本 。 我已经添加了结果“依赖”文件夹到我的Xcode项目,几乎像rakmohbuild议。

不过,只要我#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 +符号并浏览libz.dylib列表)时,我的空testing项目被编译。

在编写答案之前,我想做一些更多的testing,但是我已经将成功的shell脚本更新到了pastebin 。

感谢您的帮助!

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

  • 点击项目导航器中的项目名称(左侧窗格)
  • 点击你的目标并select“Build Phase”
  • 在“Link Binary With Libraries”下单击“+”(在现有列表的末尾)
  • 在popup的窗口中select“添加其他..”button,将打开文件浏览器窗口
  • 浏览并select要添加的库,然后单击“打开”

我已经粘贴了一个bash脚本 ,它可以在iOS 6.1的Mac上交叉编译libtiff版本3.9.6 ,以便在设备和模拟器上使用。 你将不得不适应你的需求。 另请参阅本教程的提示。 它为这两个编译目标创build一个胖库。

rakmoh的回答也是正确的,但只是解决scheme的一部分。 您在他build议的“添加其他..”对话框中添加胖文件夹的文件夹。

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