前言
zlib是一个压缩库,兼容gzip格式,免费开源
Windows环境
zlib-1.3.1:http://www.zlib.net/zlib131.zip
编译好的 DLL 库
网址:ZLIB DLL Home Page (winimage.com)
下载:目前下载Windows 64位版本动态库http://www.winimage.com/zLibDll/zlib123dllx64.zip
librdkafka-master链接zlib114dll.zip,提示出错
LNK2019 无法解析的外部符号 _deflateBound,该符号在函数 _rd_kafka_msgset_writer_compress_gzip 中被引用
因此采用下面编译的方式,采用1.3.1版本解决该引用问题
采用CMake 3.24.0-r3版本编译+VS2017,编译以后,需要将build/zconf.h和源码根路径的zlib.h文件拷贝到同一个文件夹,作为zlib的include,第三方库通过添加该文件夹,作为附加包含目录,zlibd.lib库文件在文件夹build\Debug目录下
librdkafka-master引用zlib
添加头文件路径
ZLIB_INCLUDE_DIR
添加库文件
ZLIB_LIBRARY
问题
无法解析的外部符号 _deflateBound
采用1.3.1版本解决该问题
Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
按照上面图片配置ZLIB_LIBRARY
Linux环境
系统默认自带,如果有特殊版本要求,就需要手动编译
链接动态库参数 -lz
Debian ARM版本下动态库名称
/usr/lib/aarch64-linux-gnu/libz.so
/usr/lib/aarch64-linux-gnu/libz.so.1
/usr/lib/aarch64-linux-gnu/libz.so.1.3.1
问题
undefined symbol: deflateInit_
undefined symbol: inflateEnd
程序运行提示出错:
该问题出现在链接ffmpeg动态库,没有在Makefile中没有添加 -lz 链接参数,链接zlib动态库导致的,