H5Cpp.hを使ってみる

Ubuntu 12.04でlibhdf5-serial-devをSynapticでインストールする.

#include <H5Cpp.h>

using namespace H5;

int main()
{
    H5File fout("data.h5", H5F_ACC_TRUNC);
    return 0;
}

これをh5c++でコンパイルして実行すると以下の様になります.

$ h5c++ main.cpp
$ ./a.out
$ h5dump data.h5
HDF5 "data.h5" {
GROUP "/" {
}
}

ただ、普通のg++が使いたいので困っていたらリンクの仕方を教えてもらいました. 以下の通りです.

$ g++ main.cpp /usr/lib/libhdf5_hl_cpp.a /usr/lib/libhdf5_cpp.a /usr/lib/libhdf5_hl.a /usr/lib/libhdf5.a -lpthread -lz

ファイル名main.cppの位置は重要でこれを末尾に持ってくると通りませんので要注意です. ちなみにこれは

$ h5c++ -show main.cpp
g++ -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_BSD_SOURCE -D_FORTIFY_SOURCE=2 -O0 main.cpp -L/usr/lib /usr/lib/libhdf5_hl_cpp.a /usr/lib/libhdf5_cpp.a /usr/lib/libhdf5_hl.a /usr/lib/libhdf5.a -lpthread -lz -lm -Wl,-rpath -Wl,/usr/lib -Wl,-Bsymbolic-functions -Wl,-z,relro

として見えるものを簡略化したものです.