我一直在上下搜索stackoverflow和Google,以便正确编译并将libtiff
库添加到Xcode中现有的iOS项目中。
到目前为止我做了什么:
修改
我决定在stackoverflow上遵循此建议后,已将libtiff下载到我的Mac上。我使用了版本3.9.6,并在此tutorial及其sequel中使用SDK5进行构建。在评论中,我找到了script我可以adapt。我已将生成的“dependencies”文件夹添加到我的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。
感谢您的帮助!
答案 0 :(得分:0)
以下是在XCode 4.6.2中向iOS项目添加库的步骤(在旧版本的XCode中应该类似):
答案 1 :(得分:0)
我已粘贴bash script,在Mac for iOS 6.1上交叉编译libtiff
版本3.9.6,以便在设备和模拟器中使用。您必须根据自己的需要进行调整。另请参阅此tutorial以获取提示。它为两个编译目标创建了一个胖库。
rakmoh的回答也是正确的,但只是解决方案的一部分。您可以在他建议的“添加其他...”对话框中添加带有胖库的文件夹。
然后你也添加了libz.dylib!之后,我可以在我的设备和模拟器上使用libtiff
。