#author("2020-01-23T11:09:21+09:00","default:Miyashita","Miyashita")
#author("2020-01-23T11:10:10+09:00","default:Miyashita","Miyashita")
*HDF5のインストール [#oa169485]
#contents
~
**はじめに [#pad9e72b]
各種インストールに際して
#codeprettify{{
sudo make install
}}
などと表記しているが,パス(prefix の指定場所)やユーザー(root)によっては sudo が不要なので,都合に応じて変更することに注意されたい.~
~

**zlib,szipのインストール [#q635c41a]
[[zlib>http://www.zlib.net]] のページのリンクから,それぞれ zlib のソースをダウンロードできる.~
ダウンロード後は解凍してインストールを実行する.~
tar.gz 形式をダウンロードしたとすれば,
#codeprettify{{
tar -zxf zlib-1.2.11.tar.gz
cd -zxf zlib-1.2.11
./configure --prefix=/usr/local
make
sudo make install
}}
szip についても同様に行う.ソースは [[SZIP Compression in HDF Products>https://support.hdfgroup.org/doc_resource/SZIP/]] の "SZIP Source Code" から.~
#codeprettify{{
tar -zxf szip-2.1.1.tar.gz 
cd szip-2.1.1/
./configure --prefix=/usr/local
make && sudo make install # &&で繋いでも良い
}}
~
**HDF5のインストール [#v8d455c9]
The HDF5 Group のページから,HDF5 のソースをダウンロードできる.~
追記:管理されているウェブサイトが変更になった.ソースは [[HDF SUPPORT PORTAL>https://portal.hdfgroup.org/display/support]] の Downloads から.
~
configure をする前に,pthread.h, libthread.a, libthread.so があるか確認する.
#codeprettify{{
locate pthread.h
 /usr/include/pthread.h
locate libpthread.a
 /usr/lib/x86_64-linux-gnu/
locate libpthread.so
 /usr/lib/x86_64-linux-gnu/
}}
いつも通りの解凍後,上記のパスを確認し,configure で指定する.下記の通り長い.~
#codeprettify{{
tar -zxf hdf5-1.10.4
cd hdf5-1.10.4
./configure --enable-fortran  --with-szlib=/usr/local  \
            --enable-threadsafe  --with-pthread=/usr/include/,/usr/lib/x86_64-linux-gnu  \
            --enable-hl --enable-shared --enable-unsupported \
            --prefix=/usr/local/hdf5-1.10.4  # option, prefix は個々の環境と用途による
}}
バージョンごとに分ける必要性を感じなければ,hdf5 の prefix も /usr/local/hdf5 などで良いかも.~
他にも --enable-cxx オプションを追加したかったが,今の所自分に C++ は必須でなく,Ubuntu で最新のパッケージに対応した環境構築が面倒くさそうだったので諦めた.~
C++を入れる場合は CXXFLAGS="-I/usr/foo/bar" などを駆使する.~
configure を実行したら,make と make install で完了.コンパイル中 warning がたくさん出たけど無視した.
#codeprettify{{
make
make check # 結構長い時間がかかる
sudo make install
}}
FC が ifort の場合は root にも ifort のパスが通っているかを確認する.~
~
~

***エラー,ハマったこと [#q6398052]
ifort 18.0.1 と,HDF-1.10.1 では,make のコンパイル中にエラーが発生した.内容は[[ここ>https://software.intel.com/en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/topic/747951]]に書いてあることとほぼ同じだった.エラーメッセージは
 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