网易博客旧文----编译用于IOS的zlib版本

编译用于IOS的zlib版本

2013-02-04 15:49:46| 分类: 苹果开发 | 标签: |举报 |字号大中小 订阅

虽然苹果10.8中的zlib版本为1.2.5,当前最新的zlib版本为1.2.7,另外一个就是苹果中的zlib不带minizip,而WINDOWS版本的zlb的库中带这个功能。如何编译一个最新的zlib版本同时加入需要的其它模块,这是本文研究的目的。

直接将zlib下载解压到苹果的一个目录下,在终端中执行./configure,是肯定不会成功的。

在网上找了一个编译库的脚本:http://code.google.com/p/ios-static-libraries/

经过查看,在build-all.sh中已经加入了对于IOS7和IOS7S的支持,而且这个工程最近还更新过,因此是值得使用的。并且可以看出,在模拟器上编译,生成的就是i386的代码,而在实体机上编译生成的应该是arm代码

需要的脚本就是build-all.sh和build-zlib.sh,当然使用时还需要修改一下。

1、注释掉build-all.sh中调用build-zlib.sh之前的调用其它脚本

2、注释掉build-zlib.sh解压和下载的语句,以及pushd和popd语句

3、在build-all.sh脚本中增加

export PATH=" P A T H : {PATH}: PATH:{DEVROOT}/usr/bin/"

这样make就可以用了

4、修改configure文件

原来在configure文件中

AR="/usr/bin/libtool"

ARFLAGS="-o" ;;

修改为

AR="/usr/bin/libtool"

ARFLAGS="-o" ;;

;;

解决libtool无法找到的问题,直接用ar

这样就可以了,在终端的zlib目录下执行./build-all.sh即可

最后生成的文件在iPhoneSimulator-6.0目录下

如果要加入minizip到库中,需要修改makefile.in文件,加入需要的obj模块

OBJMZ = contrib/minizip/zip.o contrib/minizip/unzip.o contrib/minizip/ioapi.o

OBJC = (OBJZ) (OBJG) $(OBJMZ)

但configure在生成makefile时会替换OBJC变量,因此还需要修改configure文件中OBJC变量默认值

OBJC='(OBJZ) (OBJG) $(OBJMZ)'

在测试工程中,删除对苹果zlib1.1.5.dylib的应用,加入编译后的zlib,然后删除工程中的minizip的相关文件,成功

这里提供测试工程:

下载: testzipframework_zlib1.2.7.rar

可参考本人博文:

在IOS上编程压缩解压缩zip格式的文件

http://xzhoumin.blog.163.com/blog/static/408811362013115529297/

并且提供修改后的文件:

下载: zlib修改文件及脚本.rar

供参考

相关推荐
终端安全笔记6 小时前
描述文件、企业证书、MDM 不是三个名字,是三层
android·ios·智能手机
传奇开心果编程6 小时前
【SwiftUI入门练中学】第1课 从零开始
学习·ui·ios·swiftui·swift
丿Wayne12 小时前
iOS Token 刷新实战(Actor 避免并发重复刷新)
ios·swift·token·actor·swift并发
终端安全笔记1 天前
iOS 27 给了租赁一个新工具,但它只认受监督的设备
android·网络·安全·ios
大熊猫侯佩1 天前
独立 App 首发完成 iPhone Duo 展开态适配
ios·swiftui·swift
光影少年1 天前
setImmediate 和 setTimeout(0) 的区别
android·前端·react.js·ios·前端框架
2501_916008891 天前
SSE 和 gRPC 流式接口如何抓包,调试 SSE 与 gRPC 流式接口
网络协议·计算机网络·网络安全·ios·adb·https·udp
HouWan2 天前
Flutter: MediaQuery.of(context) 为什么可能拖慢页面?
android·flutter·ios
用户38034165882972 天前
Broadcast Extension 里的 Live Activity:一次跨进程妥协
ios·音视频开发
匠测AI说2 天前
XCUITest 自动化全解:同进程白盒、XCTest 架构、自动同步机制与 iOS 端选型指南
测试工具·ios·自动化