IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Reply to this topicStart new topic
> работа с Zlib, в Си++ Builder
Shurup
сообщение 19 Jul 2012, 16:41 (Сообщение отредактировал Shurup - 19 Jul 2012, 16:42)
Сообщение #1

Щирий українець
Сообщений: 1 456
Спасибо сказали: 3023 раза




Нужна помощь от людей, работавших с zlib-архивами (трешечные LODы один из примеров).
Интересует все: от подключения библиотеки к проекту до компиляции и распространения готового приложения.

В гугл не посылать. Спасибо.


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
Bourn
сообщение 19 Jul 2012, 17:42
Сообщение #2

Immortal
Сообщений: 2 415
Спасибо сказали: 60 раз




для того чтобы хотябы что-то описать надо что-то иметь, а не учить человека с нуля компилировать проекты и собирать их, ну и т.п., я просто о том что надо хоть какую-то базу для того чтобы было желание отвечать на вопрос
вот пример из гугла tongue.gif
http://cppbuilder.ru/articles/0002.php


--------------------
Не лезь в дела Мудрых. Понять - не поймешь, а хлопот не оберешься.


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
Shurup
сообщение 19 Jul 2012, 18:40
Сообщение #3

Щирий українець
Сообщений: 1 456
Спасибо сказали: 3023 раза




Трабл в том, что работаю с bulider 6й версии, собираю и компилю родными средствами среды с настройками по умолчанию.
Попытался скачать библиотеки с http://www.zlib.net/ Содержимое архива повергло в панику:
CODE
amiga\
as400\
contrib\
doc\
examples\
msdos\
nintendods\
old\
qnx\
test\
watcom\
win32\
adler32.c
ChangeLog
CMakeLists.txt
compress.c
configure
crc32.c
crc32.h
deflate.c
deflate.h
FAQ
gzclose.c
gzguts.h
gzlib.c
gzread.c
gzwrite.c
INDEX
infback.c
inffast.c
inffast.h
inffixed.h
inflate.c
inflate.h
inftrees.c
inftrees.h
make_vms.com
Makefile
Makefile.in
README
treebuild.xml
trees.c
trees.h
uncompr.c
zconf.h
zconf.h.cmakein
zconf.h.in
zlib.3
zlib.h
zlib.map
zlib.3.pdf
zlib.pc.cmakein
zlib.pc.in
zlib2ansi
zutil.c
zutil.h


Может я чего-то не понимаю, но кажется, что 3 метра текстовых файлов - многовато для реализации алгоритма сжатия.
Разумеется что ченж-лог, примеры и "документацию" можно отбросить, но и без них в этой свалке много лишнего.

Теперь собственно вопрос, для тех, кто работал с ZLIB:
- Какие из этих файлов нужно подключать (и как, если это чем-то отличается от обычного #include "filename.h")
- какие из этих файлов нужно распространять с исходниками (чтоб все проект запустился на другом компе)
- Какие либы нужно будет распростанять со скомпилированным exe?
- есть ли какие-то тонкости компиляции
Go to the top of the pageAdd Nick
 
+Quote Post
tolich
сообщение 19 Jul 2012, 19:42 (Сообщение отредактировал tolich - 19 Jul 2012, 19:53)
Сообщение #4

😸🧡✊✌️
Сообщений: 16 027
Спасибо сказали: 2672 раза




Цитата(Shurup @ 19 Jul 2012, 18:40) *
- Какие из этих файлов нужно подключать (и как, если это чем-то отличается от обычного #include "filename.h")
#include "zlib.h"
К проекту добавить соответствующий 'zlib.lib'.
Цитата(Shurup @ 19 Jul 2012, 18:40) *
- какие из этих файлов нужно распространять с исходниками (чтоб все проект запустился на другом компе)
Насколько я понимаю, все.
Цитата(Shurup @ 19 Jul 2012, 18:40) *
- Какие либы нужно будет распростанять со скомпилированным exe?
Тут всё просто, если zlib собрана статическая, то никакие, если динамическая, то 'zlib.dll'.
Цитата(Shurup @ 19 Jul 2012, 18:40) *
- есть ли какие-то тонкости компиляции
Не припоминаю.

P.S. Вот, стопитсот лет назад делал: Compress.rar, может, почерпнёшь мудрости...


--------------------
Я слежу за тобой!
* tolic.narod.ru

Lu...pa...gamhi...dho?


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
tolich
сообщение 20 Jul 2012, 13:24
Сообщение #5

😸🧡✊✌️
Сообщений: 16 027
Спасибо сказали: 2672 раза




Suddenly: если используешь Qt, то там есть функции qCompress, qUncompress и qChecksum. laugh.gif


--------------------
Я слежу за тобой!
* tolic.narod.ru

Lu...pa...gamhi...dho?
Go to the top of the pageAdd Nick
 
+Quote Post
Shurup
сообщение 20 Jul 2012, 15:41 (Сообщение отредактировал Shurup - 20 Jul 2012, 15:44)
Сообщение #6

Щирий українець
Сообщений: 1 456
Спасибо сказали: 3023 раза




в том то и дело, что хочется по максиму отвязаться от всяческих тонкостей ИДЕ и фреймворков. Хочется нормального С++.
В моем понимании "нормального" - это когда скачиваешь библиотеку, подключаешь и используешь ее возможности.
Я в не могу понять смысла предварительной сборки .lib, причем разной для разных IDE.
И чем глубже погружаюсь - тем все печальнее выглядит.

Цитата
К проекту добавить соответствующий 'zlib.lib'.

Соответствующий?
Цитата(tolich @ 19 Jul 2012, 19:42) *
>> есть ли какие-то тонкости компиляции
Не припоминаю.

>> Какие либы нужно будет распростанять со скомпилированным exe?
Тут всё просто, если zlib собрана статическая, то никакие, если динамическая, то 'zlib.dll'.

Для меня это взаимоисключающие параграфы ответы. sorry.gif


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
tolich
сообщение 20 Jul 2012, 15:58
Сообщение #7

😸🧡✊✌️
Сообщений: 16 027
Спасибо сказали: 2672 раза




Цитата(Shurup @ 20 Jul 2012, 15:41) *
Я в не могу понять смысла предварительной сборки .lib, причем разной для разных IDE.
Не IDE, компиляторов/редакторов связей.
Цитата(Shurup @ 20 Jul 2012, 15:41) *
Цитата
К проекту добавить соответствующий 'zlib.lib'.
Соответствующий?
Соответствующий используемому тобой компилятору, способу сборки, etc. В Compress я собираю zlib в виде dll, соответственно сам создаю библиотеку импорта, которую и использую.
Цитата(Shurup @ 20 Jul 2012, 15:41) *
Цитата(tolich @ 19 Jul 2012, 19:42) *
>> есть ли какие-то тонкости компиляции
Не припоминаю.
>> Какие либы нужно будет распростанять со скомпилированным exe?
Тут всё просто, если zlib собрана статическая, то никакие, если динамическая, то 'zlib.dll'.

Для меня это взаимоисключающие параграфы ответы. sorry.gif
А для меня это не тонкость. Тонкости это всякие неочевидности, вроде
Цитата
перед подключением windows.h написать #define WIN32_LEAN_AND_MEAN и #define VC_EXTRALEAN


--------------------
Я слежу за тобой!
* tolic.narod.ru

Lu...pa...gamhi...dho?


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
IvanSav
сообщение 20 Jul 2012, 19:20
Сообщение #8

VCMI developer
Сообщений: 377
Спасибо сказали: 690 раз




А разве .lib обязательна? Это ж статическая библиотека - можно или линковать к lib-е и получить независимый exe или линковать с .dll и затем выкладывать exe и dll.
Цитата
в том то и дело, что хочется по максиму отвязаться от всяческих тонкостей ИДЕ и фреймворков. Хочется нормального С++.
В моем понимании "нормального" - это когда скачиваешь библиотеку, подключаешь и используешь ее возможности.

Часто можно найти уже скомпиленые либы для популярных ИДЕ. Вот только C++ builder в этот список уже давно не входит.
Линукс тут конечно рвет всех и всякого:
Код
apt-get install zlib1g-dev # ставим либу
g++ main.cpp -lz # линкуем к нужной либе

Цитата
причем разной для разных IDE.

Разве? В Си (а zlib она сишная) интерфейс один и тот же должен быть независимо от ИДЕ.
Цитата
перед подключением windows.h написать #define WIN32_LEAN_AND_MEAN и #define VC_EXTRALEAN

"Это не баг это фича" smile.gif
В windows.h есть, например, такие "фичи" как макросы min и max которые вызывают ошибки на переменных с таким именем, а в случае C++ - еще и при использовании стандартных std::min() и std::max()


--------------------
Слава Україні!


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
tolich
сообщение 20 Jul 2012, 20:48
Сообщение #9

😸🧡✊✌️
Сообщений: 16 027
Спасибо сказали: 2672 раза




Цитата(IvanSav @ 20 Jul 2012, 19:20) *
Разве? В Си (а zlib она сишная) интерфейс один и тот же должен быть независимо от ИДЕ.
Разные форматы объектных файлов и, соответственно, библиотек.

Цитата(IvanSav @ 20 Jul 2012, 19:20) *
"Это не баг это фича" smile.gif
А кто говорит, что это баг? Это всего лишь неочевидные вещи.


--------------------
Я слежу за тобой!
* tolic.narod.ru

Lu...pa...gamhi...dho?
Go to the top of the pageAdd Nick
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 24 April 2024 - 14:49
Copyright by Алексей Крючков
Strategy Gamez by GrayMage
Programming by Degtyarev Dmitry
  Яндекс.Метрика