HDF5のインストール


はじめに

各種インストールに際して

make install

などと表記しているが,パス(prefix の指定場所)やユーザー(root)によっては sudo が不要なので,都合に応じて変更することに注意されたい.

zlib,szipのインストール

C と Fortran のコンパイラを指す環境変数 CC と FC は事前に定義しておくものとする.configure コマンドと同時に定義してもよい.

CC=gcc
FC=gfortran


HDF5のインストールの前に zlib と szip をインストールする.
zlib のページのリンクから zlib のソースをダウンロードできる.
ダウンロード後は解凍してインストールを実行する.
tar.gz 形式をダウンロードしたとすれば下記の通り.

tar zxf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=$HOME/local
make
make install

szip についても同様に行う.ソースは SZIP Compression in HDF Products の "SZIP Source Code" から.

tar zxf szip-2.1.1.tar.gz 
cd szip-2.1.1/
./configure --prefix=$HOME/local
make && make install # &&で繋いでも良い


最近は cmake と使ってインストールするのが流行り?のようなので, cmake を使う方法も.

cd zlib-1.2.11
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/local/src/zlib-1.2.11
make 
make install
cd szip-2.1.1
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/local/src/szip-2.1.1
make 
make install


HDF5のインストール

The HDF5 Group のページから,HDF5 のソースをダウンロードできる.
追記:管理されているウェブサイトが変更になった.ソースは HDF SUPPORT PORTAL の Downloads から.
configure をする前に,pthread.h, libthread.so があるか確認する.

locate pthread.h
 /usr/include/pthread.h
locate libpthread.so
 /usr/lib/x86_64-linux-gnu/

↑のパスが一般に参照可能であるならば,次の ./configure での --with-pthread は不要と思われる.

次に,いつも通り tar.gz を解凍後,上の pthread 関連のパスを確認して configure で指定する.
with-package のところは実際に自分のインストールした szip や zlib の場所を指定する.
szip は with-szip= ではなくて with-szlib= となるらしい.

tar -zxf hdf5-1.x.x
cd hdf5-1.x.x
./configure --prefix=$HOME/local/src/hdf5-1.x.x --enable-fortran \
                    --with-szlib=$HOME/local/src/szip-2.1.1 \ # 環境に応じてパスを修正,以降も同じ
                    --with-zlib=$HOME/local/src/zlib-1.12.1

また,バージョンごとに分ける必要性を感じなければ,hdf5 の prefix も /hogehoge/hdf5 などで良いかも.
オプションの --enable-hl や --enable-shared はデフォルトで on になっているバージョンが多いので省略.
他にも --enable-cxx オプションを追加したかったが,今の所自分に C++ は必須でなく,最新パッケージに対応した環境構築が面倒くさそうだったので諦めた.
C++を有効にする場合は CXXFLAGS="-I/usr/foo/bar" などを駆使する.

configure を実行したら,make と make install で完了.コンパイル中 warning がたくさん出たけど無視した.

make
make check # 結構長い時間がかかる
make install

FC が ifort の場合で root で make install する場合は root にも ifort のパスが通っているかを確認する.


エラー,ハマったこと

ifort 18.0.1 と,HDF-1.10.1 では,make のコンパイル中にエラーが発生した.内容はここに書いてあることとほぼ同じだった.エラーメッセージは

Multiple objects from the same EQUIVALENCE set may not appear in a COMMON block.

common ブロックと equivalence の問題らしい.
わからないままだったので,バージョンを下げて HDF5-1.8.20 でコンパイルすることにした.問題なくインストールできた.

sudo make か root で make をする時は,ifort が root のパスにも入っているかを確認する.


Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2022-11-22 (Tue) 07:09:44 (513d)