使用ASIHTTPRequest的ASIDataCompressor与ASIDataDecompressor进行gzip压缩与解压缩,出现的问题
来源:互联网 发布:苹果库存监控软件 编辑:程序博客网 时间:2024/05/22 03:43
导入系统的libbz2.1.0.tbd
导入头文件#import <zlib.h>
从网上找的gzip压缩与解压缩方法
如:http://my.oschina.net/u/1244672/blog/185175
编译后,报错:
Undefined symbols for architecture x86_64:
"_deflate", referenced from:
+[JHEncryptTool gzipData:] in JHEncryptTool.o
"_deflateEnd", referenced from:
+[JHEncryptTool gzipData:] in JHEncryptTool.o
"_deflateInit2_", referenced from:
+[JHEncryptTool gzipData:] in JHEncryptTool.o
"_inflate", referenced from:
+[JHEncryptTool ungzipData:] in JHEncryptTool.o
"_inflateEnd", referenced from:
+[JHEncryptTool ungzipData:] in JHEncryptTool.o
"_inflateInit2_", referenced from:
+[JHEncryptTool ungzipData:] in JHEncryptTool.o
ld: symbol(s) not found for architecture x86_64
单独使用ASIDataCompressor与ASIDataDecompressor这两个类时,编译时,也会报同样的错!
解决办法:
Build Setting里面Other Linker Flags 添加 -lz
(2016-12-22)
另一个类似的问题:
Undefined symbols for architecture arm64:
"_inflate", referenced from:
+[WXOMTAHelper GUnzip:Out:] in libWeChatSDK.a(MTAHelper.o)
-[NSData(WBSDKGZIP) wbsdk_gunzippedData] in libWeiboSDK.a(WBSDKGZIP.o)
"_deflate", referenced from:
+[WXOMTAHelper GZip:Out:] in libWeChatSDK.a(MTAHelper.o)
-[NSData(WBSDKGZIP) wbsdk_gzippedDataWithCompressionLevel:] in libWeiboSDK.a(WBSDKGZIP.o)
"_inflateEnd", referenced from:
+[WXOMTAHelper GUnzip:Out:] in libWeChatSDK.a(MTAHelper.o)
-[NSData(WBSDKGZIP) wbsdk_gunzippedData] in libWeiboSDK.a(WBSDKGZIP.o)
"_deflateInit2_", referenced from:
+[WXOMTAHelper GZip:Out:] in libWeChatSDK.a(MTAHelper.o)
-[NSData(WBSDKGZIP) wbsdk_gzippedDataWithCompressionLevel:] in libWeiboSDK.a(WBSDKGZIP.o)
"_inflateInit2_", referenced from:
+[WXOMTAHelper GUnzip:Out:] in libWeChatSDK.a(MTAHelper.o)
-[NSData(WBSDKGZIP) wbsdk_gunzippedData] in libWeiboSDK.a(WBSDKGZIP.o)
"_deflateEnd", referenced from:
+[WXOMTAHelper GZip:Out:] in libWeChatSDK.a(MTAHelper.o)
-[NSData(WBSDKGZIP) wbsdk_gzippedDataWithCompressionLevel:] in libWeiboSDK.a(WBSDKGZIP.o)
ld: symbol(s) not found for architecture arm64
导入系统的libz.tbd,就解决问题了。
回头看,之前的问题,去掉
Build Setting里面Other Linker Flags 添加的 -lz
这回报错:
Undefined symbols for architecture x86_64:
"_deflate", referenced from:
-[ASIDataCompressor compressBytes:length:error:shouldFinish:] in ASIDataCompressor.o
"_deflateEnd", referenced from:
-[ASIDataCompressor closeStream] in ASIDataCompressor.o
"_deflateInit2_", referenced from:
-[ASIDataCompressor setupStream] in ASIDataCompressor.o
"_inflate", referenced from:
-[ASIDataDecompressor uncompressBytes:length:error:] in ASIDataDecompressor.o
"_inflateEnd", referenced from:
-[ASIDataDecompressor closeStream] in ASIDataDecompressor.o
"_inflateInit2_", referenced from:
-[ASIDataDecompressor setupStream] in ASIDataDecompressor.o
ld: symbol(s) not found for architecture x86_64
去掉之前导入系统库的libbz2.1.0.tbd,
换成libz.tbd,问题也解决了。
所以,libz.dylib是提供zip压缩解压缩的库。
所以,要么导入libz.tbd,要么Other Linker Flags 添加 -lz
- 使用ASIHTTPRequest的ASIDataCompressor与ASIDataDecompressor进行gzip压缩与解压缩,出现的问题
- 使用tar和gzip对某文件夹内的某类型文件进行压缩与解压缩
- 内存里面GZip压缩与解压缩的函数
- 使用JAVA进行ZIP格式的压缩与解压缩
- java Gzip 压缩与解压缩
- GZIP/ZIP压缩与解压缩
- java Gzip 压缩与解压缩
- Linux下使用Zlib压缩库,进行文件的压缩与解压缩 (一)
- 内核gzip压缩与解压缩介绍
- python webservice gzip压缩与解压缩
- C# Deflate、GZip压缩与解压缩
- tomcat配置gzip压缩与解压缩
- 利用7zip sdk进行数据流的压缩与解压缩
- ASP.NET下Zip,GZip,BZip2,Tar的实时压缩与解压缩
- 文件的压缩与解压缩
- 压缩与解压缩的实现
- 压缩与解压缩的原理
- Linux的压缩与解压缩
- tsiLdekniLoteerTyraniBnettalF.114
- Linux系列软件源码安装之五-----vsftpd服务器
- Mysql + keepalived 实现双主热备读写分离
- UINavigationController返回手势失效问题
- MyBatis映射错误:There is no setter for property named xxx
- 使用ASIHTTPRequest的ASIDataCompressor与ASIDataDecompressor进行gzip压缩与解压缩,出现的问题
- Ionic angularjs App安装与使用总结(未完)
- oracle with as 用法
- iOS开发 之 屏幕适配
- libgdx [Font]
- vc操作Excel
- linux no space left on device的解决办法(iNode满导致)
- 优秀企业家必须做好的三件事
- mysql 主主复制