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ヘッダーファイルを配置する場所へのincludeパスを設定することができません。 LD_LIBRARY_PATH
環境変数の設定は、共有オブジェクト(DLL、つまり.so
で終わるファイル)の動的リンク用です。
ほとんどのコンパイラには、検索にインクルードパスを追加するオプション-I
があります。また、おそらく-L
を使用してリンクするライブラリの場所をコンパイラーに指示し、-l
を使用してzlibとリンクするようコンパイラーに指示することもできます。
例えば。
$ c++ -I$HOME/zlib/include some_file.cpp -L$HOME/zlib/lib -lz
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関数への未定義の参照を修正する方法? 。