由于找不到zlib符号,构建失败

6
我在我的iPhone应用程序中添加zip提取库时遇到了问题。 我决定使用SSZipArchive。它使用minizip。按照以下说明后: 1 添加SSZipArchive.h、SSZipArchive.m和minizip
added minizip 2 将libz库添加到您的目标中
added libz 我仍然会出现错误:
alt text 符号未找到。
我尝试将-z添加到其他链接器标志并添加lybz.dylib,但没有帮助。如果您知道如何使libz在这里工作,请告诉我。
已解决:我不再使用文件夹,而是创建了一个黄色的参考组,并且从包含文件中删除了/minizip/,现在一切都正常运行。

如何创建“黄色参考组”? - jujule
2
@jujule 只需添加新组。或者,如果您拖放一个文件夹,请选择“创建组”而不是“创建文件夹引用”。 - Alex L
2个回答

1

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

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


我认为minizip已经链接成功了。当我将minizip文件夹重命名为其他名称时,会出现一个错误,指出无法找到Minizip/unzip.h文件。在Xcode中是否有其他测试? - Alex L
1
他说的是minizip.c,不是minizip.h。两者不同。 - Turtle
3
谢谢,我尝试添加来自官方minizip网站的minizip.c文件。但是它要求包含<direct.h>和<io.h>,出现“没有这样的文件”错误。 - Alex L

0

关键在于确保

将 /minizip/ 下的所有.c 文件添加到 "Build Phases > Compiled Sources" 中

enter image description here


对于想要使用SSZipArchiveCordova开发者,请确保在plugin.xml中不将整个/minizip/文件夹作为源文件包含。
    <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" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接