编译错误 - 缺少zlib.h

问题描述 投票:49回答:2

我正在尝试使用IBM XL编译器在Blue Gene Q上编译软件,我收到以下错误消息:

"iostreams/zlib.cpp", line 19.10: 1540-0836 (S) The #include file "zlib.h" is not found.
make[3]: *** [zlib.o] Error 1

我已经安装了新版本的zlib并用LD_LIBRARY_PATH更新了$HOME/zlib/include

我错过了什么吗?

compiler-errors compilation zlib
2个回答
14
投票

您缺少将包含路径设置为放置zlib头文件的位置。设置LD_LIBRARY_PATH环境变量用于动态链接共享对象(DLL,即以.so结尾的文件)。

大多数编译器都有一个选项-I来添加包含搜索路径。您可能希望使用-L告诉编译器在哪里找到要链接的库,并使用-l告诉编译器链接zlib。

EG

$ c++ -I$HOME/zlib/include some_file.cpp -L$HOME/zlib/lib -lz

149
投票

您缺少zlib.h头文件,在Linux上通过以下方式安装:

sudo apt-get install libz-dev

事实上,该模块在apt repo中显示为zlib1g-dev,因此这是最新的电话(2019年2月):

sudo apt install zlib1g-dev

在Fedora:sudo dnf install zlib-devel(旧版本:sudo dnf install libz-devel)。

这将为实现gzip和PKZIP中的deflate压缩方法的库提供开发支持文件。

如果您已经有zlib库,请确保使用-lz编译代码源。见:How to fix undefined references to inflate/deflate functions?

© www.soinside.com 2019 - 2024. All rights reserved.