web-dev-qa-db-ja.com

コンパイルエラー-zlib.hがありません

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に更新しました

何か不足していますか?

55
didymos

Zlibヘッダーファイルを配置する場所へのincludeパスを設定することができません。 LD_LIBRARY_PATH環境変数の設定は、共有オブジェクト(DLL、つまり.soで終わるファイル)の動的リンク用です。

ほとんどのコンパイラには、検索にインクルードパスを追加するオプション-Iがあります。また、おそらく-Lを使用してリンクするライブラリの場所をコンパイラーに指示し、-lを使用してzlibとリンクするようコンパイラーに指示することもできます。

例えば。

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

zlib.hヘッダーファイルがありません。Linuxでは次の方法でインストールします。

Sudo apt-get install libz-dev

実際、モジュールはaptリポジトリで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を使用してコードソースをコンパイルしていることを確認してください。参照: inflate/deflate関数への未定義の参照を修正する方法?

149
kenorb