未能找到 zlib 构建 b/c 符号

Posted

技术标签:

【中文标题】未能找到 zlib 构建 b/c 符号【英文标题】:Failed build b/c symbols not found zlib 【发布时间】:2010-10-18 01:46:27 【问题描述】:

我在向我的 iPhone 应用程序添加用于 zip 提取的库时遇到问题。

我决定使用SSZipArchive。它使用 minizip。

按照说明操作后:

1 添加 SSZipArchive.h、SSZipArchive.m 和 minizip

2 将 libz 库添加到您的目标

我仍然收到错误:

未找到符号。

我尝试将 -lz 添加到其他链接器标志并添加 lybz.dylib 但它没有帮助。如果您知道如何让 libz 在这里工作,请告诉我。


已解决:我没有使用文件夹,而是创建了一个黄色参考组,从包含中删除 /minizip/,现在一切正常。

【问题讨论】:

如何建立“黄色参考组”? @jujule 只需添加新组。或者,如果您拖放文件夹,请选择“创建组”而不是“创建文件夹引用”。 【参考方案1】:

unzOpenunzOpenCurrentFileunzOpenCurrentFilePassword 是在 minizip 库中定义的函数。链接器抱怨它找不到这些函数,这意味着它们没有被正确编译或链接。

确保 minizip/unzip.c 正确包含在您的项目中,并仔细检查它是否已编译和链接。

【讨论】:

我认为 minizip 链接正常。当我将 minizip 文件夹重命名为其他内容时,我收到一个错误,即找不到 Minizip/unzip.h。 xcode中还有其他测试吗? 他说的是 minizip.c,而不是 minizip.h。不是一回事。 谢谢,我尝试从官方 minizip 站点添加 minizip.c。但它试图 #include 。没有这样的文件错误。【参考方案2】:

关键是要确保

/minizip/ 下的所有 .c 文件都添加到“Build Phases > 编译来源"


对于想要使用 SSZipArchiveCordova 开发人员,请确保不要将整个 /minizip/ 文件夹作为源文件包含在 plugin.xml 中,

    <source-file src="src/ios/minizip"/>

^^^^^^^^没有!

将它们分别包含为和:

<header-file src="src/ios/minizip/crypt.h" target="crypt.h" />
<source-file src="src/ios/minizip/ioapi.c" target="ioapi.c" />
<header-file src="src/ios/minizip/ioapi.h" target="ioapi.h" />
<source-file src="src/ios/minizip/mztools.c" target="mztools.c" />
<header-file src="src/ios/minizip/mztools.h" target="mztools.h" />
<source-file src="src/ios/minizip/unzip.c" target="unzip.c" />
<header-file src="src/ios/minizip/unzip.h" target="unzip.h" />
<source-file src="src/ios/minizip/zip.c" target="zip.c" />
<header-file src="src/ios/minizip/zip.h" target="zip.h" />

【讨论】:

以上是关于未能找到 zlib 构建 b/c 符号的主要内容,如果未能解决你的问题,请参考以下文章

重复符号错误:带有 Objective-Zip、ZLib、MiniZip 的 Flurry SDK 5.0.0

使用 CMake 在库中查找符号

静态 Swift 框架未能通过 CocoaPods 验证,并显示“未定义的架构符号”

AWS Elastic Beanstalk Drupal 8 安装错误:未能创建符号链接“站点/默认/文件”:

如果向PHP页面传递带有“&”符号的参数怎么办?

XCode 4.3 使用错误链接的 dylib 构建 iOS 应用程序(未找到符号:_OBJC_CLASS_$_CLGeocoder)