编译错误 - 缺少zlib.h

时间:2013-08-09 13:42:17

标签: compiler-errors compilation zlib

我正在尝试使用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

我错过了什么吗?

5 个答案:

答案 0 :(得分:140)

您缺少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?

答案 1 :(得分:15)

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

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

E.g。

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

答案 2 :(得分:0)

我也有同样的问题。然后我安装了zlib,问题仍然存在。然后,我在.bashrc中添加了以下几行,即可正常工作。您应将路径替换为zlib安装路径。 (我没有root特权)。

export PATH =$PATH:$HOME/Softwares/library/Zlib/zlib-1.2.11/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/Softwares/library/Zlib/zlib-1.2.11/lib/
export LIBRARY_PATH=$LIBRARY_PATH:$HOME/Softwares/library/Zlib/zlib-1.2.11/lib/
export C_INCLUDE_PATH=$HOME/Softwares/library/Zlib/zlib-1.2.11/include/
export CPLUS_INCLUDE_PATH=$HOME/Softwares/library/Zlib/zlib-1.2.11/include/
export PKG_CONFIG_PATH=$HOME/Softwares/library/Zlib/zlib-1.2.11/lib/pkgconfig

答案 3 :(得分:0)

在openSUSE 19.2中,安装patterns-hpc-development_node软件包对我来说已经解决了这个问题。

答案 4 :(得分:0)

也许您可以从https://dev.w3.org/Amaya/libpng/zlib/zlib.h下载zlib.h,并将其放在目录中以解决问题。