Libz 未在 XCode 中链接
Libz not getting linked in XCode
在我的项目中有几个链接错误,每个都指向缺少 libz。这是示例:
Undefined symbols for architecture arm64:
"_inflateReset2", referenced from:
_png_inflate_claim in libcocos2d iOS.a(pngrutil.o)
"_inflateEnd", referenced from:
cocos2d::unzCloseCurrentFile(void*) in libcocos2d iOS.a(unzip.o)
cocos2d::ZipUtils::inflateMemoryWithHint(unsigned char*, long, unsigned char**, long*, long) in libcocos2d iOS.a(ZipUtils.o)
_png_destroy_read_struct in libcocos2d iOS.a(pngread.o)
+[GAICompressionUtil gai_dataByInflatingBytes:length:isRawData:] in libGoogleAnalyticsServices.a(GAICompressionUtil.o)
_FT_Stream_OpenGzip in libcocos2d iOS.a(ftgzip.o)
_ft_gzip_stream_close in libcocos2d iOS.a(ftgzip.o)
_FT_Gzip_Uncompress in libcocos2d iOS.a(ftgzip.o)
...
"_deflate", referenced from:
+[GAICompressionUtil gai_dataByCompressingBytes:length:compressionLevel:mode:] in libGoogleAnalyticsServices.a(GAICompressionUtil.o)
"_deflateInit2_", referenced from:
+[GAICompressionUtil gai_dataByCompressingBytes:length:compressionLevel:mode:] in libGoogleAnalyticsServices.a(GAICompressionUtil.o)
"_inflateReset", referenced from:
_png_decompress_chunk in libcocos2d iOS.a(pngrutil.o)
_FT_Stream_OpenGzip in libcocos2d iOS.a(ftgzip.o)
_ft_gzip_file_io in libcocos2d iOS.a(ftgzip.o)
看起来外部库(cocos2d & GA)找不到这个库。我在 Link 二进制文件中有我的目标库,在其他 Linger 标志中也有 -lz
标志。删除其中任何一个都会保留此错误。
什么会导致这个问题?如何解决?
(我已经尝试过重启 XCode、清理派生数据等操作)
XCode 的当前版本有些问题。您需要清除您之前在项目中尝试的所有 zlib / libz 引用,然后在 Finder 中打开 /usr/lib 并手动将 libz.dylib 拖到您的项目和源文件旁边。这就是五分钟前对我有用的东西。
不知道怎么回事。我有一个使用 zlib 的原型项目可以正确编译,但是当我复制并粘贴邮政编码并将支持文件复制到我的真实项目时,我无法编译,并出现相同的 zlib-missing 错误。原型项目继续编译。项目之间的设置没有区别!在我的真实项目中,我尝试添加 libz.dylib 并且它是非链接版本 (libz.1.dylib),我尝试手动将 -lz 添加到链接器构建选项,但都无济于事。耶发现者!我希望这对你也有用。
在我的项目中有几个链接错误,每个都指向缺少 libz。这是示例:
Undefined symbols for architecture arm64:
"_inflateReset2", referenced from:
_png_inflate_claim in libcocos2d iOS.a(pngrutil.o)
"_inflateEnd", referenced from:
cocos2d::unzCloseCurrentFile(void*) in libcocos2d iOS.a(unzip.o)
cocos2d::ZipUtils::inflateMemoryWithHint(unsigned char*, long, unsigned char**, long*, long) in libcocos2d iOS.a(ZipUtils.o)
_png_destroy_read_struct in libcocos2d iOS.a(pngread.o)
+[GAICompressionUtil gai_dataByInflatingBytes:length:isRawData:] in libGoogleAnalyticsServices.a(GAICompressionUtil.o)
_FT_Stream_OpenGzip in libcocos2d iOS.a(ftgzip.o)
_ft_gzip_stream_close in libcocos2d iOS.a(ftgzip.o)
_FT_Gzip_Uncompress in libcocos2d iOS.a(ftgzip.o)
...
"_deflate", referenced from:
+[GAICompressionUtil gai_dataByCompressingBytes:length:compressionLevel:mode:] in libGoogleAnalyticsServices.a(GAICompressionUtil.o)
"_deflateInit2_", referenced from:
+[GAICompressionUtil gai_dataByCompressingBytes:length:compressionLevel:mode:] in libGoogleAnalyticsServices.a(GAICompressionUtil.o)
"_inflateReset", referenced from:
_png_decompress_chunk in libcocos2d iOS.a(pngrutil.o)
_FT_Stream_OpenGzip in libcocos2d iOS.a(ftgzip.o)
_ft_gzip_file_io in libcocos2d iOS.a(ftgzip.o)
看起来外部库(cocos2d & GA)找不到这个库。我在 Link 二进制文件中有我的目标库,在其他 Linger 标志中也有 -lz
标志。删除其中任何一个都会保留此错误。
什么会导致这个问题?如何解决?
(我已经尝试过重启 XCode、清理派生数据等操作)
XCode 的当前版本有些问题。您需要清除您之前在项目中尝试的所有 zlib / libz 引用,然后在 Finder 中打开 /usr/lib 并手动将 libz.dylib 拖到您的项目和源文件旁边。这就是五分钟前对我有用的东西。
不知道怎么回事。我有一个使用 zlib 的原型项目可以正确编译,但是当我复制并粘贴邮政编码并将支持文件复制到我的真实项目时,我无法编译,并出现相同的 zlib-missing 错误。原型项目继续编译。项目之间的设置没有区别!在我的真实项目中,我尝试添加 libz.dylib 并且它是非链接版本 (libz.1.dylib),我尝试手动将 -lz 添加到链接器构建选项,但都无济于事。耶发现者!我希望这对你也有用。