ZLIB.h头文件实现

时间:2018-05-20 05:11:45

标签: zlib

我想知道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

我正在尝试使用库libenz.a构建一个名为'denzip'的可执行文件,这是我用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 :(得分:0)

这意味着头文件zlib.h和zconf.h来自zlib的不同版本,而不是您链接到的libz.so或libz.a库二进制文件。

打印ZLIB_VERSIONzlibVersion()的结果,分别查看标题和库的版本。