Реализация заголовочного файла ZLIB.h - PullRequest
0 голосов
/ 20 мая 2018

Я хочу знать о реализации файла заголовка с открытым исходным кодом zlib.h.

Я хочу знать, что именно означает следующее утверждение:

`Z_VERSION_ERROR` if the zlib library version (zlib_version) is incompatible
with the version assumed by the caller (`ZLIB_VERSION`).

Я работаю над ARMмашина с архитектурой arch64 и использование этого заголовка с открытым исходным кодом в нашей сборке.Возвращается Z_VERSION_ERROR.

Я пытаюсь создать исполняемый файл с именем 'denzip', используя библиотеку libenz.a, которую я создал с помощью источника zlib.

PS: 'libdenz.a'это библиотека, которую я создал из стандартной библиотеки' libz.a 'из источника zlib.Причина в том, что у нас есть требование переименовать некоторые символы в исходной библиотеке (libz.a).

Команда построения:

common/pkgs/gcc/v6.3.0/bin/gcc -L/usr/X11R6/lib -O2 -DUSE_FLEX -Wall -Wno-char-subscripts -fPIC -DLINUX -DG_DISABLE_CONST_RETURNS -fno-strict-aliasing -o Release/tools/denzip -Wl,-E Release/tools/denzip.o -L/home/clib/extlibs/Lnx/lib -ldenbase -ldenz -ldenbase -ldl -lm -lc 

У меня есть библиотека 'libdenz.a' впуть '/ home / clib / extlibs / Lnx / lib'.После того, как исполняемый файл 'denzip' создан.Когда я пытаюсь использовать этот исполняемый файл, я получаю:

denzip -c trctotb.tcl
 Error: *** Error: Error in trctotb.tcl compression: bad library version
 *** Error: trctotb.tcl: aborting compression

Источник:

int rc;
rc = DenZ_deflateInit( &zstream, Z_DEFAULT_COMPRESSION );
switch ( rc ) {
case Z_MEM_ERROR:
reportZError( "insufficient memory", contentType,
              "compression", &zstream );
return FALSE;
case Z_VERSION_ERROR:
printf("The integer is %d\n", zlib_version);
reportZError( "bad library version", contentType,
              "compression", &zstream );
return FALSE;
}

Z_VERSION_ERROR исходит от zlib.h

1 Ответ

0 голосов
/ 21 мая 2018

Это означает, что заголовочные файлы zlib.h и zconf.h относятся к другой версии zlib, нежели двоичный файл библиотеки libz.so или libz.a, на который вы ссылаетесь.

Печать ZLIB_VERSIONи результат zlibVersion() для просмотра версий заголовка и библиотеки соответственно.

...