2010-10-18 3 views
6

У меня возникли проблемы с добавлением libs для извлечения zip в мое приложение для iPhone.Не удалось создать символы b/c не найдены zlib

Я решил использовать SSZipArchive. Он использует minizip.

После выполнения инструкции:

1 Добавить SSZipArchive.h, SSZipArchive.m и minizip
added minizip

2 Добавить библиотеку libz к цели
added libz

Я все еще получаю ошибки:
alt text

Символ (ы) не найдены.

Я попытался добавить -lz в другие флаги компоновщика и добавить lybz.dylib, но это не помогло. Пожалуйста, дайте мне знать, знаете ли вы, как заставить libz работать здесь.


Решено: Вместо того, чтобы использовать папку, я сделал желтую референтную группу, удаляют/minizip/с включает в себя и теперь все работает.

+0

как вы делаете «желтую референтную группу»? – jujule

+2

@jujule Просто добавьте новую группу. Или, если вы перетащите папку, выберите «Создать группы» вместо «Создать ссылки на папку».« –

ответ

1

unzOpen, unzOpenCurrentFile и unzOpenCurrentFilePassword - это функции, определенные в библиотеке minizip. Компонент жалуется, что не может найти эти функции, а это значит, что они не собираются или не связаны должным образом.

Убедитесь, что minizip/unzip.c включен в ваш проект правильно и дважды проверьте, что он скомпилирован и связан.

+0

Я думаю, что minizip связан OK. Когда я переименовываю папку minizip в нечто другое, я получаю сообщение об ошибке, которое Minizip/unzip.h не может быть найдено. Есть ли еще один тест в xcode? –

+1

Он сказал minizip.c, а не minizip.h. Не то же самое. – Turtle

+2

Спасибо, я попытался добавить minizip.c с официального сайта minizip. Но он пытается включить # и . Нет такой ошибки файла. –

0

Ключ к этому является, чтобы убедиться,

Всех .c файлов в/minizip/добавлены к "Построить Фазы> Составитель Источники"

enter image description here


Для Кордова разработчиков, которые хотят использовать SSZipArchive, убедитесь, что вы не включают в себя все/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" /> 
Смежные вопросы