Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Qt и ZipArchive 
:(
    Опции темы
ecspertiza
Дата 18.3.2009, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 3.11.2008
Где: г.Смоленск

Репутация: 4
Всего: 5



вот потребовалось встроить в программу работу с архивами, нашёл тут на форуме похожую тему http://forum.vingrad.ru/topic-193597.html, решил поюзать ZipArchive, стало быть скачал собрал как написано в мануале 
Код

make -f Makefile.mingw
make -f Makefile.mingw install
-f Makefile.mingw zippie


всё собралось, теперь пробую добавить в софт

Код

    CZipArchive zip;
    // open an existing archive
    zip.Open(_T("C:/LineWidget.zip"));
    // extract the first file
    zip.ExtractFile(0, _T("C:/LineWidget"));
    // extract the second file with the resulting filename changed
    zip.ExtractFile(1, _T("C:/LineWidget"), false, _T("just extracted.dat"));
    zip.Close();


в проекте дописываю

Код

LIBS =  -lziparch 


а компилятор мне нигодяй отвечает

Код

mingw32-make[1]: Entering directory `D:/MyDocument/Demki/Qt/workspace/Philately_Operator'
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -Wl,-subsystem,console -mthreads -Wl -o release\Philately_Operator.exe object_script.Philately_Operator.Release  -L"c:\Qt\4.5.0\lib" -lfbclient_ms -LC:/msys/1.0/lib/ -lziparch -stdc++ -lQtSql4 -lQtGui4 -lQtCore4
mingw32-make[1]: Leaving directory `D:/MyDocument/Demki/Qt/workspace/Philately_Operator'
mingw32-make: Leaving directory `D:/MyDocument/Demki/Qt/workspace/Philately_Operator'
./release\philately_operator.o:philately_operator.cpp:(.text+0x24763): undefined reference to `CZipArchive::Open(wchar_t const*, int, unsigned long)'
./release\philately_operator.o:philately_operator.cpp:(.text+0x24798): undefined reference to `CZipArchive::ExtractFile(unsigned short, wchar_t const*, bool, wchar_t const*, unsigned long)'
./release\philately_operator.o:philately_operator.cpp:(.text+0x247d0): undefined reference to `CZipArchive::ExtractFile(unsigned short, wchar_t const*, bool, wchar_t const*, unsigned long)'
collect2: ld returned 1 exit status


пол дня бьюсь нашёл похожую тему но она на французом вроде я в нём не силён http://forum.qtfr.org/viewtopic.php?id=4327
кто знает в чём грабли? 


--------------------
С уважением,
мастер конфетного цеха!

онлайн компилер
залип
PM MAIL   Вверх
SABROG
Дата 18.3.2009, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Цитата(ecspertiza @  18.3.2009,  13:33 Найти цитируемый пост)
LIBS =  -lziparch 

Наверно в этом:

Код

LIBS = -L/path/where/to/find/libziparch.a -lziparch



--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
ecspertiza
Дата 18.3.2009, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 3.11.2008
Где: г.Смоленск

Репутация: 4
Всего: 5



то есть если я всё правильно понял то в моём случае это будет
Код

LIBS = -LC:/msys/1.0/lib/libziparch.a -lziparch


На это он говорит что неможет найти -lziparch а в катологе C:/msys/1.0/lib/ он есть

Это сообщение отредактировал(а) ecspertiza - 18.3.2009, 13:56


--------------------
С уважением,
мастер конфетного цеха!

онлайн компилер
залип
PM MAIL   Вверх
Vaulter
Дата 18.3.2009, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: нет
Всего: 22



Код

LIBS = -LC:/msys/1.0/lib -lziparch



--------------------
PM MAIL WWW ICQ   Вверх
ecspertiza
Дата 18.3.2009, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 3.11.2008
Где: г.Смоленск

Репутация: 4
Всего: 5



Так тоже пробовал выводит тоже что и в первом посте.


--------------------
С уважением,
мастер конфетного цеха!

онлайн компилер
залип
PM MAIL   Вверх
ecspertiza
Дата 18.3.2009, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 3.11.2008
Где: г.Смоленск

Репутация: 4
Всего: 5



Или может знает кто хороший способ как работать с архивами (ZIP)?


--------------------
С уважением,
мастер конфетного цеха!

онлайн компилер
залип
PM MAIL   Вверх
SABROG
Дата 18.3.2009, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Я не работал, но вот еще такое есть http://quazip.sourceforge.net/index.html


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
Arch1S
Дата 18.3.2009, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 14.1.2008
Где: Беларусь, Гомель

Репутация: нет
Всего: 3



SABROG, ух ты, спасибо

раньше работал с libzip, вроде всё работала
PM MAIL   Вверх
Acer
Дата 18.3.2009, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 5.9.2007
Где: UA::DN

Репутация: 15
Всего: 8



ecspertiza, а ты "LIBS +=..." писал в Makefile или в *.pro файл?
PM MAIL   Вверх
SABROG
Дата 18.3.2009, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Цитата(Acer @ 18.3.2009,  20:39)
ecspertiza, а ты "LIBS +=..." писал в Makefile или в *.pro файл?

Кстати я только после своего поста заметил, что пути уже прописаны, это видно в куске где undefined reference идет. У меня есть еще подозрение, что могло быть забыто что-то другое подключиться. А может проблема в том, что программа не в MSYS собирается и виндовая консоль не может разобрать линуксовые пути.

Узнал, что у QuaZip/minizip есть проблема, он не поддерживает поддиректории в zip архивах. Есть еще такой проект http://zziplib.sourceforge.net/

Тока он не собирается...

Цитата

Creating library file: .libs/libzzip.dll.a
/bin/sh ../libtool --silent --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.. -I../..       -O2 -D_USE_MMAP  -fomit-frame-pointer -Wall -Wpointer-arith -Wsign-compare -Wmissing-declarations -Wdeclaration-after-statement -Werror-implicit-function-declaration -MT mmapped.lo -MD -MP -MF .deps/mmapped.Tpo -c -o mmapped.lo ../../zzip/mmapped.c
../../zzip/mmapped.c: In function `zzip_disk_mmap':
../../zzip/mmapped.c:110: error: invalid lvalue in unary `&'
../../zzip/mmapped.c: At top level:
../../zzip/__mmap.h:56: warning: 'win32_getpagesize' defined but not used
make[3]: *** [mmapped.lo] Error 1
make[3]: Leaving directory `/d/Work/zziplib-0.13.50/MINGW32_NT-5.1_1.0.11(0.46_3_2)_i686.d/zzip'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/d/Work/zziplib-0.13.50/MINGW32_NT-5.1_1.0.11(0.46_3_2)_i686.d'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/d/Work/zziplib-0.13.50/MINGW32_NT-5.1_1.0.11(0.46_3_2)_i686.d'
make: *** [all] Error 2



Это сообщение отредактировал(а) SABROG - 18.3.2009, 23:35


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
just_geek
Дата 18.3.2009, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 309
Регистрация: 13.12.2007

Репутация: 7
Всего: 10



Эм, вообщем в Qt 4.5.0 есть ZipReader.

Только вот...

Код

//
//  W A R N I N G
//  -------------
//
// This file is not part of the Qt API.  It exists for the convenience
// of the QLibrary class.  This header file may change from
// version to version without notice, or even be removed.
//
// We mean it.
//


qzip.cpp, qzipreader_p.h, qzipwriter_p.h
PM MAIL   Вверх
SABROG
Дата 19.3.2009, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Я так понял они его для Open Document Format сделали. Пока у них используется только QZipWriter, есть еще QZipReader, но он висит без дела.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
ecspertiza
Дата 19.3.2009, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 3.11.2008
Где: г.Смоленск

Репутация: 4
Всего: 5



SABROG, спасибо QuaZIP то что доктор прописал)))


--------------------
С уважением,
мастер конфетного цеха!

онлайн компилер
залип
PM MAIL   Вверх
ecspertiza
Дата 19.3.2009, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 3.11.2008
Где: г.Смоленск

Репутация: 4
Всего: 5



а ктонибудь использовал QuaZIP, для приложений со статической сборкой?
при динамической сборке всё в порядке, а когда собираю статично приложение он мне пишет 
Код

d:\Qt\4.5.0\lib/libQtCore.a(deflate.o)(.text+0xe80):deflate.c: multiple definition of `deflateParams'
d:\Qt\4.5.0\lib/libquazip.a(d000126.o)(.text+0x0): first defined here
d:\Qt\4.5.0\lib/libQtCore.a(deflate.o)(.text+0x1410):deflate.c: multiple definition of `deflateInit_'
d:\Qt\4.5.0\lib/libquazip.a(d000125.o)(.text+0x0): first defined here
d:\Qt\4.5.0\lib/libQtCore.a(deflate.o)(.text+0x440):deflate.c: multiple definition of `deflate'
d:\Qt\4.5.0\lib/libquazip.a(d000120.o)(.text+0x0): first defined here
d:\Qt\4.5.0\lib/libQtCore.a(deflate.o)(.text+0xf90):deflate.c: multiple definition of `deflateReset'
d:\Qt\4.5.0\lib/libquazip.a(d000128.o)(.text+0x0): first defined here
d:\Qt\4.5.0\lib/libQtCore.a(deflate.o)(.text+0x0):deflate.c: multiple definition of `deflateEnd'
d:\Qt\4.5.0\lib/libquazip.a(d000123.o)(.text+0x0): first defined here
d:\Qt\4.5.0\lib/libQtCore.a(inflate.o)(.text+0x0):inflate.c: multiple definition of `inflateReset'
d:\Qt\4.5.0\lib/libquazip.a(d000149.o)(.text+0x0): first defined here
d:\Qt\4.5.0\lib/libQtCore.a(inflate.o)(.text+0x220):inflate.c: multiple definition of `inflateInit_'
d:\Qt\4.5.0\lib/libquazip.a(d000147.o)(.text+0x0): first defined here
d:\Qt\4.5.0\lib/libQtCore.a(inflate.o)(.text+0x3c0):inflate.c: multiple definition of `inflate'
d:\Qt\4.5.0\lib/libquazip.a(d000142.o)(.text+0x0): first defined here
d:\Qt\4.5.0\lib/libQtCore.a(inflate.o)(.text+0x1c80):inflate.c: multiple definition of `inflateEnd'
d:\Qt\4.5.0\lib/libquazip.a(d000144.o)(.text+0x0): first defined here
d:\Qt\4.5.0\lib/libQtCore.a(inflate.o)(.text+0x1ec0):inflate.c: multiple definition of `inflateSync'
d:\Qt\4.5.0\lib/libquazip.a(d000151.o)(.text+0x0): first defined here


QuaZIP пробовал тоже статично собирать, собирается нормально но ответ компилятора при сборке приложения тот же.


--------------------
С уважением,
мастер конфетного цеха!

онлайн компилер
залип
PM MAIL   Вверх
SABROG
Дата 20.3.2009, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



В общем я развил тему классов QZipReader и QZipWriter в своем блоге: http://vingrad.ru/blogs/sabrog/2009/03/20/...s-zip-arhivami/


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0825 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.