【问题标题】:Xcode 4.2 link error: libz issue?Xcode 4.2 链接错误:libz 问题?
【发布时间】:2011-07-21 17:08:57
【问题描述】:

将项目移动到 Xcode 4.2,我在 Xcode 4.0.3 中编译和链接正常的项目中遇到了许多 Mach-O 链接器未解决的错误,例如 _crc32、_expf 和 _UnwindSjLj_Register。

我怀疑这可能是 libz 问题,因为我之前的项目链接了 libz.1.2.3.dylib。我删除了该引用,并添加了 libz.1.2.5.dylib,它位于我的 /Platforms/iPhoneOS.platform/DeviceSupport/5.0 (9A5259f)/Symbols 1/usr/lib 文件夹中。

无论我是否包含 libz.1.2.5.dylib,我都会得到相同的 39 个未解决的引用,所以这看起来很可疑。

【问题讨论】:

    标签: ios xcode


    【解决方案1】:

    链接到 libz.dylib,但通过 Build Phases 选项卡添加它。

    项目>>目标>>构建阶段>>链接二进制与库

    按列表下的+并选择libz.dylib,然后它将添加库,以便在SDK更新之间工作。

    【讨论】:

    • 谢谢,这样做了,它现在确实在任一 SDK 中链接了该库。谢谢。
    • @epatel,与问题无关,但我在谷歌中找不到这个。我可以在 Snow Leopard 中使用 XCode 4.2,还是需要 Lion?如果您回答,我将不胜感激。非常感谢!
    • @Comptrol 如果您登录 developer.apple.com,您会发现两种不同的下载,一种用于 Lion,一种用于 Snow Leopard。
    • 这对我来说似乎不安全。 1.2.3 和 1.2.5 之间的一般区别是什么?当您链接到 libz.dylib 而不是 libz.1.2.3.dyliblibz.1.2.5.dylib 时到底发生了什么?
    • @Hyperbole 如果你检查你会注意到 SDK 中的libz.dylib 实际上是一个文件链接到一个版本化的 dylib(通常是最新的)。但是只有一个标头版本,它将与最新版本具有相同的版本。因此,如果您今天尝试链接(在 xcode 中)1.2.3,并且 SDK 已更新,包括 libz 到 1.3.0 并带有更新的标头,您仍将链接旧版本(但如果您使用 libz.dylib您将链接再次与标题相同)...嗯,类似的东西,但每个库都可以有自己的要求
    【解决方案2】:

    同一个库 - libz.1.2.3.dylib 有问题。按照建议,我添加了 libz.dylib。仍然收到消息“ld:找不到 -lz.1.2.3 的库”。删除参考构建成功。尝试用 libz.1.2.5.dylib 替换 libz.dylib 并且仍然构建没有错误。 XCode 4.3.2,Lion (OS X 10.7.4)

    【讨论】:

      【解决方案3】:

      我有同样的问题。 它适用于 xcode 4.2。当我在 xcode 4.5 中运行应用程序时。 我有这个问题。 libz.dylib(没有这样的文件或目录)命令 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool 失败,退出代码为 1。 我试过用 libz1.2.5dylib.but 没用

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-28
        • 1970-01-01
        • 2012-09-17
        • 2011-12-14
        • 2011-05-22
        • 1970-01-01
        • 2012-03-18
        • 1970-01-01
        相关资源
        最近更新 更多