Last modified: 25 September 2013
Tool Name: h5c++
Syntax:
  `h5c++ [`OPTIONS`]` <compile line>

Purpose:
  Helper script to compile HDF5 C++ applications.

Description:

  `h5c++` can be used in much the same way MPIch is used to compile an HDF5 program. It takes care of specifying where the HDF5 header files and libraries are on the command line.

  `h5c++` supersedes all other compiler scripts in that if you've used one set of compiler scripts to compile the HDF5 C++ library, then `h5c++` uses those same scripts. For example, when compiling an MPIch program, you use the `mpiCC` script.

  Some programs use HDF5 in only a few modules. It isn't necessary to use `h5c++` to compile those modules which don't use HDF5. In fact, since `h5c++` is only a convenience script, you are still able to compile HDF5 C++ modules in the normal way. In that case, you will have to specify the HDF5 libraries and include paths yourself. Use the `-show` option to see the details.

  An example of how to use `h5c++` to compile the program `hdf_prog`, which consists of modules `prog1.cpp` and `prog2.cpp` and uses the HDF5 C++ library, would be as follows:

              # h5c++ -c prog1.cpp
              # h5c++ -c prog2.cpp
              # h5c++ -o hdf_prog prog1.o prog2.o

Options and Parameters:

  `-help` | Prints a help message.
  `-echo` | Show all the shell commands executed.
  `-prefix=DIR` | Use the directory `DIR` to find HDF5 `lib/` and `include/` subdirectories Default: prefix specified when configuring HDF5.
  `-show` | Show the commands without executing them.
  `-shlib` | Compile using shared HDF5 libraries. Default for HDF5 built without static libraries.
  `-noshlib` | Compile using static HDF5 libraries. Default for HDF5 built with static libraries.
  | <compile line> `` | The normal compile line options for your compiler. `h5c++` uses the same compiler you used to compile HDF5. Check your compiler's manual for more information on which options are needed.

Environment Variables:
  When set, these environment variables override some of the built-in defaults of `h5c++`.

  `HDF5_CXX` | Use a different C++ compiler.
  `HDF5_CXXLINKER` | Use a different linker.
  `HDF5_USE_SHLIB=[yes|no]` | Use shared version of the HDF5 library. Default: no, except when HDF5 built with only shared libraries.
  `HDF5_CPPFLAGS` | Use additional preprocessor flags.
  `HDF5_CXXFLAGS` | Use additional C++ compiler flags.
  `HDF5_LDFLAGS` | Use additional library paths.
  `HDF5_LIBS` | Use additional libraries.

  The last four of these environment variables have corresponding variables with names ending in `BASE` that can also be set by editing their values in the "Things You Can Modify to Override HDF5 Library Build Components" section of the `h5c++` script.

  Note that adding library paths to `HDF5_LDFLAGS` where another HDF5 version is located may link your program with that other HDF5 Library version.

Exit Status:

  0 | Succeeded.
  > 0 | An error occurred.

History:

  Release | Command Line Tool
  1.8.12 | Tool modified to switch default to link to shared libraries when HDF5 configured with `--disable-static`.
  1.8.6 | Four compiler flags and environment variables added.
  1.8.5 | Tool exit status codes updated.
  1.6.0 | Tool introduced in this release.