我在我的iphone应用程序中包含了<zlib.h>
和源代码我正在模拟Brad Larson提供的Molecules示例代码,但是,当我构建项目时,它会返回如下错误。任何人都可以向我指出这是一个链接问题的库还是我错过了其他东西?
"_deflate", referenced from: -[NSData(Gzip) gzipDeflate] in NSData+Gzip.o "_inflateEnd",
referenced from: -[NSData(Gzip) initWithGzippedData:] in NSData+Gzip.o "inflateInit2",
referenced from: -[NSData(Gzip) initWithGzippedData:] in NSData+Gzip.o "_inflate",
referenced from: -[NSData(Gzip) initWithGzippedData:] in NSData+Gzip.o "_deflateEnd",
referenced from: -[NSData(Gzip) gzipDeflate] in NSData+Gzip.o "deflateInit2", referenced
from: -[NSData(Gzip) gzipDeflate] in NSData+Gzip.o ld: symbol(s) not found collect2: ld
returned 1 exit status
答案 0 :(得分:82)
在目标的Build Settings
标签中,向下滚动到Other Linker Flags
部分,确保-lz
在该字段中。这将链接内置的zlib,你的错误应该消失。
更改链接标记后,您必须先从Clean
菜单中选择Product
,然后再重新构建。
答案 1 :(得分:47)
将libz添加到您的项目中。为此,请在Xcode中执行以下步骤:
您可以使用相同的方法从列表中添加任何库。如果库未出现在列表中,那么您知道它不是标准iPhone SDK的一部分,您可能需要重新考虑您的解决方案或自己静态构建库并将目标链接到该库(如果可能的话)。 / p>