1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
|
Instructions for the Installation of HDF5 Software
==================================================
CONTENTS
--------
1. Obtaining HDF5
2. Warnings about compilers
2.1. GNU (Intel platforms)
2.2. DEC
2.3. SGI (Irix64 6.2)
3. Quick installation
3.1. TFLOPS
3.2. Windows
3.3. Certain Virtual File Layer(VFL)
4. HDF5 dependencies
4.1. Zlib
4.2 Szip
4.3. MPI and MPI-IO
5. Full installation instructions for source distributions
5.1. Unpacking the distribution
5.1.1. Non-compressed tar archive (*.tar)
5.1.2. Compressed tar archive (*.tar.Z)
5.1.3. Gzip'd tar archive (*.tar.gz)
5.1.4. Bzip'd tar archive (*.tar.bz2)
5.2. Source vs. Build Directories
5.3. Configuring
5.3.1. Specifying the installation directories
5.3.2. Using an alternate C compiler
5.3.3. Additional compilation flags
5.3.4. Compiling HDF5 wrapper libraries
5.3.5. Specifying other programs
5.3.6. Specifying other libraries and headers
5.3.7. Static versus shared linking
5.3.8. Optimization versus symbolic debugging
5.3.9. Large (>2GB) vs. small (<2GB) file capability
5.3.10. Parallel vs. serial library
5.4. Building
5.5. Testing
5.6. Installing
5.7 Building and testing with Intel compilers
5.8 Building and testing with PGI compilers
6. Using the Library
7. Support
*****************************************************************************
1. Obtaining HDF5
The latest supported public release of HDF5 is available from
ftp://hdf.ncsa.uiuc.edu/HDF5/current/src. It is
available in tar format compressed with gzip.
The HDF team also makes snapshots of the source code available on
a regular basis. These snapshots are unsupported (that is, the
HDF team will not release a bug-fix on a particular snapshot;
rather any bug fixes will be rolled into the next snapshot).
Furthermore, the snapshots have only been tested on a few
machines and may not test correctly for parallel applications.
Snapshots can be found at
ftp://hdf.ncsa.uiuc.edu/pub/outgoing/hdf5/snapshots in a limited
number of formats.
2. Warnings about compilers
OUTPUT FROM THE FOLLOWING COMPILERS SHOULD BE EXTREMELY SUSPECT
WHEN USED TO COMPILE THE HDF5 LIBRARY, ESPECIALLY IF
OPTIMIZATIONS ARE ENABLED. IN ALL CASES, HDF5 ATTEMPTS TO WORK
AROUND THE COMPILER BUGS BUT THE HDF5 DEVELOPMENT TEAM MAKES NO
GUARANTEES THAT THERE ARE OTHER CODE GENERATION PROBLEMS.
2.1. GNU (Intel platforms)
Versions before 2.8.1 have serious problems allocating registers
when functions contain operations on `long long' data types.
Supplying the `--disable-hsizet' switch to configure (documented
below) will prevent hdf5 from using `long long' data types in
situations that are known not to work, but it limits the hdf5
address space to 2GB.
2.2. COMPAQ/DEC
The V5.2-038 compiler (and possibly others) occasionally
generates incorrect code for memcpy() calls when optimizations
are enabled, resulting in unaligned access faults. HDF5 works
around the problem by casting the second argument to `char *'.
The fortran module (5.4.1a) fails in compiling some fortran
programs. Need to use 5.5.0 or more.
2.3. SGI (Irix64 6.2)
The Mongoose 7.00 compiler has serious optimization bugs and
should be upgraded to MIPSpro 7.2.1.2m. Patches are available
from SGI.
3. Quick installation
For those that don't like to read ;-) the following steps can be
used to configure, build, test, and install the HDF5 library,
header files, and support programs. "#" in "hdf5-1.6.#" below stands
for the release number, for example "3" for hdf5-1.6.3, or
for release and subrelease versions, for example,
"3-snap4" for hdf5-1.6.3-snap4.
$ gunzip < hdf5-1.6.#.tar.gz | tar xf -
$ cd hdf5-1.6.#
$ make check
$ make install
3.1. TFLOPS
Users of the Intel TFLOPS machine, after reading this file,
should see the INSTALL_TFLOPS for more instructions.
3.2. Windows
Users of Microsoft Windows should see the INSTALL_Windows for
detailed instructions.
3.3. Certain Virtual File Layer(VFL)
If users want to install with special Virtual File Layer(VFL),
please go to read INSTALL_VFL file. SRB and Globus-GASS have
been documented.
4. HDF5 dependencies
4.1. Zlib
The HDF5 library has a predefined compression filter that uses
the "deflate" method for chunked datatsets. If zlib-1.1.2 or
later is found then HDF5 will use it, otherwise HDF5's predefined
compression method will degenerate to a no-op (the compression
filter will succeed but the data will not be compressed).
4.2. Szip (optional)
The HDF5 library has a predefined compression filter that uses
the extended-Rice lossless compression algorithm for chunked
datatsets. For more information about Szip compression and license terms
see http://hdf.ncsa.uiuc.edu/doc_resource/SZIP/index.html.
Precompiled szip binaries for each supported platform and source tar ball
file can be found at ftp://ftp.ncsa.uiuc.edu/HDF/szip/
To configure HDF5 library with Szip compression filter, use
--enable-szlib=/PATH_TO_SZIP flag. For more information see 5.3.6.
Starting with the release 1.6.3 Szip library binaries are distributed
with encoder enabled (license may be required to use this binary)
and with encoder disabled (license free). Depending on which Szip
binary is used, Szip compression is available or is not available
for an HDF5 application. Szip decoding is always available, i.e.
an HDF5 application can always read Szip compressed data if Szip filter
is present.
4.3. MPI and MPI-IO
The parallel version of the library is built upon the foundation
provided by MPI and MPI-IO. If these libraries are not available
when HDF5 is configured then only a serial version of HDF5 can be
built.
5. Full installation instructions for source distributions
5.1. Unpacking the distribution
The HDF5 source code is distributed in a variety of formats which
can be unpacked with the following commands, each of which
creates an `hdf5-1.6.#' directory.
5.1.1. Non-compressed tar archive (*.tar)
$ tar xf hdf5-1.6.#.tar
5.1.2. Compressed tar archive (*.tar.Z)
$ uncompress -c < hdf5-1.6.#.tar.Z | tar xf -
5.1.3. Gzip'd tar archive (*.tar.gz)
$ gunzip < hdf5-1.6.#.tar.gz | tar xf -
5.1.4. Bzip'd tar archive (*.tar.bz2)
$ bunzip2 < hdf5-1.6.#.tar.bz2 | tar xf -
5.2. Source vs. Build Directories
On most systems the build can occur in a directory other than the
source directory, allowing multiple concurrent builds and/or
read-only source code. In order to accomplish this, one should
create a build directory, cd into that directory, and run the
`configure' script found in the source directory (configure
details are below).
Unfortunately, this does not work on recent Irix platforms (6.5?
and later) because that `make' doesn't understand the VPATH
variable. However, hdf5 also supports Irix `pmake' which has a
.PATH target which serves a similar purpose. Here's what the man
pages say about VPATH, which is the facility used by HDF5
makefiles for this feature:
The VPATH facility is a derivation of the undocumented
VPATH feature in the System V Release 3 version of make.
System V Release 4 has a new VPATH implementation, much
like the pmake(1) .PATH feature. This new feature is also
undocumented in the standard System V Release 4 manual
pages. For this reason it is not available in the IRIX
version of make. The VPATH facility should not be used
with the new parallel make option.
5.3. Configuring
HDF5 uses the GNU autoconf system for configuration, which
detects various features of the host system and creates the
Makefiles. On most systems it should be sufficient to say:
$ ./configure OR
$ sh configure
The configuration process can be controlled through environment
variables, command-line switches, and host configuration files.
For a complete list of switches type:
$ ./configure --help
The host configuration files are located in the `config'
directory and are based on architecture name, vendor name, and/or
operating system which are displayed near the beginning of the
`configure' output. The host config file influences the behavior
of configure by setting or augmenting shell variables.
5.3.1. Specifying the installation directories
Typing `make install' will install the HDF5 library, header
files, examples, and support programs in hdf5/lib,
hdf5/include, hdf5/examples and hdf5/bin under the directory where it
was built (hdf5-1.6.# or build directory mentioned in 5.2)
To use a path other than hdf5 specify the path with
the `--prefix=PATH' switch:
$ ./configure --prefix=$HOME
If shared libraries are being built (the default) then the final
home of the shared library must be specified with this switch
before the library and executables are built.
5.3.2. Using an alternate C compiler
By default, configure will look for the C compiler specified
in the host configuration file in the config directory or by trying
`gcc' and `cc'. However, if the environment variable "CC" is set
then its value is used as the C compiler (users of csh and
derivatives will need to prefix the commands below with `env').
For instance, to use the native C compiler on a system which also
has the GNU gcc compiler:
$ CC=cc ./configure
A parallel version of hdf5 can be built by specifying parallel compiler,
usually `mpicc', as the C compiler (the `--enable-parallel' flag documented
below is optional in this case). Using the `mpicc' compiler
will insure that the correct MPI and MPI-IO header files and
libraries are used.
$ CC=/usr/local/mpi/bin/mpicc ./configure
On Irix64 the default compiler is `cc'. To use an alternate
compiler specify it with the CC variable:
$ CC='cc -n32' ./configure
Similarly, users compiling on a Solaris machine and desiring to
build the distribution with 64-bit support should specify the
correct flags with the CC variable:
$ CC='cc -xarch=v9' ./configure
To configure AIX 64 bits including fortran API and C++,
(Remark: need to hardset $AR to 'ar -X 64'.)
Serial:
$ CFLAGS=-q64 FFLAGS=-q64 CXXFLAGS=-q64 AR='ar -X 64'\
$ ./configure --enable-fortran
Parallel:
$ CFLAGS=-q64 FFLAGS=-q64 AR='ar -X 64'\
$ ./configure --enable-fortran --enable-parallel
5.3.3. Additional compilation flags
If addtional flags must be passed to the compilation commands
then specify those flags with the CFLAGS variable. For instance,
to enable symbolic debugging of a production version of HDF5 one
might say:
$ CFLAGS=-g ./configure --enable-production
5.3.4. Compiling HDF5 wrapper libraries
One can optionally build the Fortran and/or C++ interface to the
HDF5 C library. By default, both options are disabled. To build
them, specify `--enable-fortran' and `--enable-cxx' respectively.
$ ./configure --enable-fortran
$ ./configure --enable-cxx
Configure uses Fortran compiler specified in the host configuration
file in the fortran/config directory and C++ compiler specified in the
host configuration file under the c++/config directory.
Configuration will halt if a working Fortran 90 or 95 compiler or
C++ compiler is not found. Currently, the Fortran configure tests
for these compilers in order: f90, pgf90, f95. To use an
alternative Fortran compiler specify it with the F9X variable,
for example:
$ F9X=/mycompiler/bin/g95 ./configure --enable-fortran
To use an alternative C++ compiler specify it with the CXX variable:
$ CXX=/mycompiler/bin/c++ ./configure --enable-cxx
Note: Fortran interface supports parallel HDF5 while the
C++ interface does not.
Note: On Cray T3E machines the following files need to be modified
before building the Fortran Library:
fortran/src/H5Dff.f90
fortran/src/H5Aff.f90
fortran/src/H5Pff.f90
Check for "Comment if on T3E ..." comment and comment out
specified lines or use a patch from HDF FTP server
ftp://ftp.ncsa.uiuc.edu/HDF/HDF5/current/
Note: See sections 5.7 and 5.8 for how to build Fortran Library with
PGI or Intel compilers.
5.3.5. Specifying other programs
The build system has been tuned for use with GNU make but works
also with other versions of make. If the `make' command runs a
non-GNU version but a GNU version is available under a different
name (perhaps `gmake') then HDF5 can be configured to use it by
setting the MAKE variable. Note that whatever value is used for
MAKE must also be used as the make command when building the
library:
$ MAKE=gmake ./configure
$ gmake
The `AR' and `RANLIB' variables can also be set to the names of
the `ar' and `ranlib' (or `:') commands to override values
detected by configure.
The HDF5 library, include files, and utilities are installed
during `make install' (described below) with a BSD-compatible
install program detected automatically by configure. If none is
found then the shell script bin/install-sh is used. Configure
doesn't check that the install script actually works, but if a
bad install is detected on your system (e.g., on the ASCI blue
machine as of March 2, 1999) you have two choices:
1. Copy the bin/install-sh program to your $HOME/bin
directory, name it `install', and make sure that $HOME/bin
is searched before the system bin directories.
2. Specify the full path name of the `install-sh' program
as the value of the INSTALL environment variable. Note: do
not use `cp' or some other program in place of install
because the HDF5 makefiles also use the install program to
also change file ownership and/or access permissions.
5.3.6. Specifying other libraries and headers
Configure searches the standard places (those places known by the
systems compiler) for include files and header files. However,
additional directories can be specified by using the CPPFLAGS
and/or LDFLAGS variables:
$ CPPFLAGS=-I/home/robb/include \
LDFLAGS=-L/home/robb/lib \
./configure
HDF5 uses the zlib library for two purposes: it provides support
for the HDF5 deflate data compression filter, and it is used by
the h5toh4 converter and the h4toh5 converter in support of
HDF4. Configure searches the standard places (plus those
specified above with CPPFLAGS and LDFLAGS variables) for the zlib
headers and library. The search can be disabled by specifying
`--without-zlib' or alternate directories can be specified with
`--with-zlib=/PATH_TO_ZLIB' or through the CPPFLAGS and LDFLAGS
variables:
$ ./configure --with-zlib=/PATH_TO_ZLIB
$ CPPFLAGS=-I/PATH_TO_ZLIB/include \
LDFLAGS=-L/PATH_TO_ZLIB/lib \
./configure
HDF5 has Szip predefined compression method (see 4.2). To enable
Szip compression, HDF5 library has to be configured and build using
Szip Library
$ ./configure --with-szlib=/PATH_TO_SZIP
5.3.7. Static versus shared linking
The build process will create static libraries on all systems and
shared libraries on systems that support dynamic linking to a
sufficient degree. Either form of library may be suppressed by
saying `--disable-static' or `--disable-shared'.
$ ./configure --disable-shared
The C++ and Fortran libraries are currently only available in the
static format.
To build only statically linked executables on platforms which
support shared libraries, use the `--enable-static-exec' flag.
$ ./configure --enable-static-exec
5.3.8. Optimization versus symbolic debugging
The library can be compiled to provide symbolic debugging support
so it can be debugged with gdb, dbx, ddd, etc or it can be
compiled with various optimizations. To compile for symbolic
debugging (the default for snapshots) say `--disable-production';
to compile with optimizations (the default for supported public
releases) say `--enable-production'. On some systems the library
can also be compiled for profiling with gprof by saying
`--enable-production=profile'.
$ ./configure --disable-production #symbolic debugging
$ ./configure --enable-production #optimized code
$ ./configure --enable-production=profile #for use with gprof
Regardless of whether support for symbolic debugging is enabled,
the library also is able to perform runtime debugging of certain
packages (such as type conversion execution times, and extensive
invariant condition checking). To enable this debugging supply a
comma-separated list of package names to to the `--enable-debug'
switch (see doc/html/Debugging.html in the source directory
for a list of package names).
Debugging can be disabled by saying `--disable-debug'. The
default debugging level for snapshots is a subset of the
available packages; the default for supported releases is no
debugging (debugging can incur a significant runtime penalty).
$ ./configure --enable-debug=s,t #debug only H5S and H5T
$ ./configure --enable-debug #debug normal packages
$ ./configure --enable-debug=all #debug all packages
$ ./configure --disable-debug #no debugging
HDF5 is also able to print a trace of all API function calls,
their arguments, and the return values. To enable or disable the
ability to trace the API say `--enable-trace' (the default for
snapthots) or `--disable-trace' (the default for public
releases). The tracing must also be enabled at runtime to see any
output (see Debugging.html).
5.3.9. Large (>2GB) vs. small (<2GB) file capability
In order to read or write files that could potentially be larger
than 2GB it is necessary to use the non-ANSI `long long' data
type on some platforms. However, some compilers (e.g., GNU gcc
versions before 2.8.1 on Intel platforms) are unable to produce
correct machine code for this data type. To disable use of the
`long long' type on these machines say:
$ ./configure --disable-hsizet
5.3.10. Parallel vs. serial library
The HDF5 library can be configured to use MPI and MPI-IO for
parallelizm on a distributed multi-processor system. Read the
file INSTALL_parallel for detailed explanations.
5.3.11. Threadsafe capability
The HDF5 library can be configured to be thread-safe (on a very
large scale) with the with the `--enable-threadsafe' flag to
the configure script. Some platforms may also require the
'-with-pthread=INC,LIB' (or '--with-pthread=DIR') flag to the configure
script as well. Read the file doc/html/TechNotes/ThreadSafeLibrary.html
in the source directory for further details.
5.3.12. Backward compatibility
The 1.6 version of the HDF5 library can be configured to operate
identically to the v1.4 library with the `--enable-hdf5v1_4'
configure flag. This allows existing code to be compiled with the
v1.6 library without requiring immediate changes to the
application source code. This flag will only be supported in the
v1.6 branch of the library, it will not be available in v1.7+.
5.3.13. Network stream capability
The HDF5 library can be configured with a network stream file
driver with the `--enable-stream-vfd' configure flag. This option
compiles the "stream" Virtual File Driver into the main library.
See the documentation on the Virtual File Layer for more details
about the use of this driver. This option is ON by default. Use
--disable-stream-vfd configuration flag to turn it OFF.
5.4. Building
The library, confidence tests, and programs can be build by
saying just:
$ make
Note that if you supplied some other make command via the MAKE
variable during the configuration step then that same command
must be used here.
When using GNU make you can add `-j -l6' to the make command to
compile in parallel on SMP machines. Do not give a number after
th `-j' since GNU make will turn it off for recursive invocations
of make.
$ make -j -l6
5.5. Testing
HDF5 comes with various test suites, all of which can be run by
saying
$ make check
To run only the tests for the library change to the `test'
directory before issuing the command. Similarly, tests for the
parallel aspects of the library are in `testpar' and tests for
the support programs are in `tools'.
Temporary files will be deleted by each test when it complets,
but may continue to exist in an incomplete state if the test
fails. To prevent deletion of the files define the HDF5_NOCLEANUP
environment variable.
5.6. Installing
The HDF5 library, include files, and support programs can be
installed in a (semi-)public place by saying `make install'. The
files are installed under the directory specified with
`--prefix=DIR' (or 'hdf5' in the build directory) in directories named `lib',
`include', 'doc', and `bin'. The prefix directory DIR must exist prior to
`make install', but its subdirectories are created automatically.
'hdf5' directory under the build directory is created automatically.
If `make install' fails because the install command at your site
somehow fails, you may use the install-sh that comes with the
source. You need to run ./configure again.
$ INSTALL="$PWD/bin/install-sh -c" ./configure ...
$ make install
The library can be used without installing it by pointing the
compiler at the `src' and 'src/.libs' directory for include files and
libraries. However, the minimum which must be installed to make
the library publically available is:
The library:
./src/.libs/libhdf5.a
The public header files:
./src/H5*public.h, ./src/H5public.h
./src/H5FD*.h except ./src/H5FDprivate.h,
./src/H5api_adpt.h
The main header file:
./src/hdf5.h
The configuration information:
./src/H5pubconf.h
The support programs that are useful are:
./tools/h5ls/h5ls (list file contents)
./tools/h5dump/h5dump (dump file contents)
./tools/misc/h5repart (repartition file families)
./tools/misc/h5debug (low-level file debugging)
./tools/h5import/h5import (imports data to HDF5 file)
./tools/h5diff/h5diff (compares two HDF5 files)
./tools/gifconv/h52gif (HDF5 to GIF converter)
./tools/gifconv/gif2h5 (GIF to HDF5 converter)
5.7 Building and testing with Intel compilers
When Intel compilers are used (icc or ecc), you will need to
modify the generated "libtool" program after configuration is finished.
On or around line 104 of the libtool file, there are lines which
look like:
# How to pass a linker flag through the compiler.
wl=""
Change these lines to this:
# How to pass a linker flag through the compiler.
wl="-Wl,"
UPDATE: This is now done automatically by the configure script. However,
if you still experience a problem, you may want to check this line in
the libtool file and make sure that it has the correct value.
* To build the Fortran library using Intel compiler on Linux 2.4, one has to
x Use -fpp -DDEC$=DEC_ -DMS$=MS_ compiler flags to disable
DEC and MS compiler directives in source files in fortran/src, fortran/test
and fortran/examples directories.
e.g., setenv F9X 'ifc -fpp -DDEC$=DEC_ -DMS$=MS_'
(do not use double quotes since $ is interpreted in them.)
x If Version 6.0 of Fortran compiler is used, build fails in
the fortran/test directory and then in the
fortran/examples directory; to proceed, edit the work.pcl files in
those directories to contain two lines
work.pc
../src/work.pc
x Do the same in fortran/examples directory
x Problem with work.pc files was resolved for newest version of the compiler (7.0)
* To build the Fortran Library on IA32 follow step described above, except
that DEC and MS compiler directives should be removed manually or
use a patch from HDF FTP server ftp://ftp.ncsa.uiuc.edu/HDF/HDF5/current/
Also check "How to build HDF5 Fortran with Intel Compiler" under HDF5 FAQ
http://hdf.ncsa.uiuc.edu/hdf5-quest.html#plat-intel
5.8 Building and testing with PGI compilers
When PGI C and C++ compilers are used (pgcc or pgCC), you will need to
modify the generated "libtool" program after configuration is finished.
On or around line 104 of the libtool file, there are lines which
look like:
# How to pass a linker flag through the compiler.
wl=""
Change these lines to this:
# How to pass a linker flag through the compiler.
wl="-Wl,"
UPDATE: This is now done automatically by the configure script. However,
if you still experience a problem, you may want to check this line in
the libtool file and make sure that it has the correct value.
To build HDF5 C++ Library with pgCC (version 4.0 and later), set
environment variable CXX to "pgCC -tlocal"
setenv CXX "pgCC -tlocal"
before running the configure script.
6. Using the Library
Please see the User Manual in the doc/html directory.
Most programs will include <hdf5.h> and link with -lhdf5.
Additional libraries may also be necessary depending on whether
support for compression, etc. was compiled into the hdf5 library.
A summary of the hdf5 installation can be found in the
libhdf5.settings and libhdf5_fortran.settings files in the bin
subdirectory.
Users are encouraged to use helper compiler scripts h5cc, h5fc, and
h5c++ to build HDF5 C, Fortran and C++ applications correspondigly. Those
scripts are installed under bin subdirectory when make install is run.
6.1 Using the C++ API
To use the C++ API, one must include the header file H5Cpp.h
in the application. Please refer to the examples in c++/examples
for sample code.
A doxygen-generated Reference Manual of the C++ API is provided
in the doc/html/cpplus_RM directory. It can be invoked from
index.html. If an updated version or a different format is
desired, users can re-generate this document with Doxygen.
When running in c++/src, Doxygen will put the generated html
files in doc/html/cpplus_RM. Users may specify a different
location by editing the field OUTPUT_DIRECTORY in the configuration
file c++/src/cpp_doc_config. The field HTML_STYLESHEET specifies
the stylesheet that can be used to change the document layout.
7. Support
Support is described in the README file.
|