繁体   English   中英

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

[英]Compile libtiff for iOS project to include 64bit architecture

我有一个iOS应用程序更新到最新的SDK8.3,我使用的是最新版本的Xcode。 我的应用程序使用libtiff将图像(PNG格式)转换为TIFF格式。 我遇到的问题是我需要向App Store提交一个新版本,并且需要包含64位架构。 我项目中的libtiff库很旧,我必须更新到最新版本。

我从官方下载站点(ftp.remotesensing.org)下载了libtiff 4.0.3但我无法为所需的架构构建它,我收到错误。 我已经阅读了这篇文章,但是有点过时了,我认为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)?

我只需要tiff转换但没有jpg压缩,所以我猜我不需要jpeg库。

我有类似的问题,但幸运的是我找到了这个Github项目 只需按照说明操作即可构建库。 首先构建libjpg因为是生命的依赖。

使用终端并转到下载项目的文件夹,在我的例子中是liftiff-ios-master ,并按此顺序运行这两个脚本。

./build-jpg.sh
./build-tiff.sh

完成在liftiff-ios-master/dependencies文件夹中后,您将找到两个文件夹, include和包含所有必需文件的lib

在Xcode中只需将以下文件复制到您的项目中(这些只是libtiff的必需文件,除非您需要jpeg压缩支持,否则无需复制jpeg库文件):

libtiff文件

并验证liftiff.a已添加到目标中Build Phases选项卡的Link Binary With Libraries部分。

在.h或.m文件中只包含以下内容:

#import <tiffio.h>

编译并运行。 确保设置Architectures您的Build Settings设置为Standard architectures (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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM