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 添加到链接器构建选项,但都无济于事。耶发现者!我希望这对你也有用。