为iOS项目编译libtiff以包括64位架构

4
我有一个iOS应用程序,已更新到最新的SDK8.3,并使用最新版本的Xcode。我的应用程序使用libtiff将图像(PNG格式)转换为TIFF格式。我的问题是,我需要提交一个新版本到App Store,并且需要合并64位架构。我的项目中的libtiff库旧,我必须更新到最新版本。
我从官方下载站点(ftp.remotesensing.org)下载了libtiff 4.0.3,但我无法为所需的架构构建它,出现错误。我阅读了this post ,但它有点过时了,我认为Apple在Xcode 6与Xcode 5或Xcode 4中改变了工具链。
我不是gcc/llvm工具链的专家,我有点迷失。我只需要在我的Xcode项目中使用tiff库并成功编译它。我试图构建库自己,但它仅针对OS X构建,我需要iOS。
在iOS中关于TIFF的文档很少,我更喜欢使用PNG,但由于业务原因,我需要使用TIFF。有人成功地将libtiff编译成一个包含5个所需架构(i386、x86_64、arm64、armv7、armv7s)的fat二进制文件吗?
我只需要进行无jpg压缩的tiff转换,因此我猜测我不需要jpeg库。
1个回答

2
我曾经遇到类似的问题,但是很幸运地我找到了这个Github项目。只需按照说明构建库即可。首先构建libjpg,因为它是liftiff的依赖项。
使用终端并进入已下载项目的文件夹,在我的情况下是liftiff-ios-master,然后按照以下顺序运行这两个脚本。
./build-jpg.sh
./build-tiff.sh

完成后,在 liftiff-ios-master/dependencies 文件夹中,您会找到两个文件夹:includelib,其中包含所有必要的文件。
在 Xcode 中,只需将以下文件复制到您的项目中(这些仅是 libtiff 的必要文件,除非需要支持 jpeg 压缩,否则不需要复制 jpeg 库文件): libtiff files 然后,请确认 liftiff.a 已添加到目标的 Build Phases 选项卡下的 Link Binary With Libraries 部分。
在您的 .h 或 .m 文件中,只需包含此内容即可:
#import <tiffio.h>

编译并运行。确保您的构建设置中的架构设置为标准架构(armv7、arm64)

为了验证liftiff.a是否具有所有所需的架构,在其文件夹中并从终端使用以下命令:

$ file libtiff.a
libtiff.a: Mach-O universal binary with 5 architectures
libtiff.a (for architecture armv7):     current ar archive random library
libtiff.a (for architecture armv7s):    current ar archive random library
libtiff.a (for architecture i386):      current ar archive random library
libtiff.a (for architecture x86_64):    current ar archive random library
libtiff.a (for architecture arm64):     current ar archive random library

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接