Libz没有在XCode中链接

Pol*_*ina 5 xcode libz ios cocos2d-x

在我的项目中,我有几个链接错误,每个都指向缺少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)
Run Code Online (Sandbox Code Playgroud)

所以看起来像外部库(cocos2d和GA)找不到这个库.我在Link二进制文件中为我的目标提供了库,-lz在其他Linger标志中也有标志.删除任何这些都会保留此错误.

什么可能导致这个问题?如何解决这个问题?

(我已经尝试过重启XCode,清理派生数据等等)

小智 2

当前版本的 XCode 有点奇怪。您需要清除项目中之前尝试的所有 zlib / libz 引用,然后在 Finder 中打开 /usr/lib 并手动将 libz.dylib 与源文件一起拖到项目中。这就是五分钟前对我有用的方法。

我不知道发生了什么事。我有一个使用 zlib 的原型项目,可以正确编译,但是当我复制并粘贴邮政编码并将支持文件复制到我的真实项目时,我无法编译,并出现相同的 zlib 缺失错误。原型项目继续编译。项目之间的设置没有区别!在我的真实项目中,我尝试添加 libz.dylib 并且它是非链接版本(libz.1.dylib),我尝试手动将 -lz 添加到链接器构建选项中,但均无济于事。耶,发现者!我希望这对你也有用。