首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >libz.dylib与libz.1.2.3.dylib与libz.1.2.5.dylib

libz.dylib与libz.1.2.3.dylib与libz.1.2.5.dylib
EN

Stack Overflow用户
提问于 2011-08-04 04:39:03
回答 4查看 21.1K关注 0票数 34

我在评论中提出了这个问题,但这似乎是一个值得自己提问的问题。

我有一个在三个不同的XCode安装和两个不同的iOS SDK安装之间共享的项目。目前,统一相关的开发人员并不是一种选择。

当我安装iOS 5测试版和XCode 4.2时,到处都找不到libz.1.2.3.dylib。我发现针对libz.1.2.5.dylib的链接解决了这个问题,但这与XCode和iOS SDK的其他活动安装不兼容。

我在网上研究了一下,发现了上面的建议和this建议。前者对我不起作用,后者让我紧张。

那么,libz.dyliblibz.1.2.3.dyliblibz.1.2.5.dylib之间有什么不同呢?我可以在所有XCode和iOS软件开发工具包的所有安装中安全地链接到第一个吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-08-04 05:14:55

操作系统通常包含许多版本的动态库。它们由不同的程序使用,这取决于它们在编译时针对哪个库进行编译,但在编译时,您希望链接到与您要包含/导入到源代码中的已安装头文件相对应的版本。

libz.dylib将是一个链接,指向您的已安装标头所使用的同一版本。

假设你有两个版本libXYZ.1.dyliblibXYZ.2.dyliblibXYZ.dylib是到libXYZ.2.dylib的链接,libXYZ.1.dylib是一个遗留的库,在libXYZ.2.dylib发布之前编译和分发的应用程序也可以在操作系统中使用。libXYZ.1.dylib之所以包含在软件开发工具包中,是因为可能有一些旧的框架仍然希望链接到旧版本。

这两个版本在头文件中可能有非常相似的接口,所以当你编译和运行时,你看不到任何真正的区别,但在未来的版本中,旧版本可能会被删除,并添加新的版本,这将使你的项目在链接时中断。

如果我理解正确的话,链接器将取消引用文件链接,这样它就会找到正确的版本,并保留dylib名称,并在应用程序启动时动态链接。因此,libz.dylib将不是使用的路径(多于编译时的路径)。

我在4.3SDK的Xcode安装中看到了这一点

/Developer/.../SDKs/iPhoneOS4.3.sdk/usr/include/zlib.h

代码语言:javascript
复制
/* zlib.h -- interface of the 'zlib' general purpose compression library
  version 1.2.3, July 18th, 2005

  Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler

libz.dylib

代码语言:javascript
复制
/Developer/.../SDKs/iPhoneOS4.3.sdk/usr/lib/libz.dylib -> libz.1.2.3.dylib
票数 28
EN

Stack Overflow用户

发布于 2011-11-12 13:28:53

您可以很容易地在finder中看到它们是如何工作的。在XCode中,“在查找器中显示”的库之一。现在点击一下libz.dylib和“获取信息”。你会看到“原创”是:

/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/usr/lib/libz.1.2.5.dylib (从带有iOS 5SDK的XCode4.2开始)

所以现在它是到1.2.5版本的符号链接。在未来,它将更新到最新的1.x.x。您可以通过这种方式检查所有不同的版本。

票数 4
EN

Stack Overflow用户

发布于 2013-06-12 16:51:00

只需链接libz.dylib,而不是特定的版本,编译器将链接已安装的SDK上的可用版本。链接到当前安装的SDK中未提供的特定版本时,可能会出现链接器错误。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6932991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档