当前位置:  开发笔记 > 编程语言 > 正文

在iOS中导入zlib时出错:找不到符号collect2:ld

如何解决《在iOS中导入zlib时出错:找不到符号collect2:ld》经验,为你挑选了2个好方法。

我已经包含在我的iphone应用程序和源代码中,我正在模拟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

Ben Gottlieb.. 82

在Tar​​get的Build Settings选项卡中,向下滚动到该Other Linker Flags部分,确保-lz在该字段中.这将链接内置的zlib,你的错误应该消失.

更改链接器标志后,您必须在再次构建之前CleanProduct菜单中进行选择.

lz截图



1> Ben Gottlieb..:

在Tar​​get的Build Settings选项卡中,向下滚动到该Other Linker Flags部分,确保-lz在该字段中.这将链接内置的zlib,你的错误应该消失.

更改链接器标志后,您必须在再次构建之前CleanProduct菜单中进行选择.

lz截图


我觉得杰森的答案是一种更可靠的方法.

2> Jason Coco..:

将libz添加到您的项目中.为此,请在Xcode中按照下列步骤操作:

    打开项目,选择项目目标,然后单击工具栏上的蓝色项目信息图标(或按⌘I)
    例1

    单击屏幕左下角的+按钮添加库,向下滚动到库列表的底部并选择libz.dylib; 单击"添加"按钮.
    例2

    单击添加后,您将看到库名称显示在链接库的oyur列表中.您现在可以在不链接错误的情况下构建项目.
    例3

您可以使用相同的方法从列表中添加任何库.如果库未出现在列表中,那么您知道它不是标准iPhone SDK的一部分,您可能需要重新考虑您的解决方案或自己静态构建库并将目标链接到该库(如果可能的话).


-1 - 虽然这是一个非常好的答案,但是当您向目标添加库时,libz.dylib不再可用,并且它们不应该用于标准库.而是将`-lz`添加到链接器标志.
推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有