我正在尝试使用 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
我错过了什么吗?
我正在尝试使用 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
我错过了什么吗?
您缺少zlib.h
头文件,在 Linux 上通过以下方式安装它:
sudo apt-get install libz-dev
事实上,该模块zlib1g-dev
在 apt repo 中呈现,所以这是最新的调用(2019 年 2 月):
sudo apt install zlib1g-dev
在 Fedora 上:(sudo dnf install zlib-devel
在旧版本中:)sudo dnf install libz-devel
。
这将为实现 gzip 和 PKZIP 中的 deflate 压缩方法的库提供开发支持文件。
如果您已经zlib
库,请确保您正在使用-lz
. 请参阅:如何修复对 inflate/deflate 函数的未定义引用?.
您已将库安装在非标准位置 ( $HOME/zlib/
)。这意味着编译器不会知道你的头文件在哪里,你需要告诉编译器。
-I
您可以使用(大写 i) 选项将路径添加到编译器用于搜索头文件的列表中。
另请注意,LD_LIBRARY_PATH
它用于运行时链接器和加载器,并在尝试运行应用程序时搜索动态库。要为构建时链接器添加路径,请使用该-L
选项。
总而言之,命令行应该看起来像
$ c++ -I$HOME/zlib/include some_file.cpp -L$HOME/zlib/lib -lz
在 openSUSE 19.2 中安装patterns-hpc-development_node
包为我解决了这个问题。
我也有同样的问题。然后我安装了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
也许您可以从https://dev.w3.org/Amaya/libpng/zlib/zlib.h下载 zlib.h ,并将其放在目录中以解决问题。