mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-12-09 07:32:32 +08:00
8f487df795
Update. Description: Update installation file on how to link HDF5 with Zlib 1.2.2 and Szip 2.0 DLL libraries. Solution: Platforms tested: Misc. update:
1262 lines
45 KiB
Plaintext
1262 lines
45 KiB
Plaintext
HDF5 Build and Install Instructions for Windows 2000/XP (Full Version)
|
|
------------------------------------------------------------------------
|
|
|
|
The following instructions assume that the HDF5 source code package from
|
|
HDF website (http://hdf.ncsa.uiuc.edu) is used.
|
|
|
|
|
|
***************************WARNINGS*************************************
|
|
Please read CAREFULLY about the following preconditions and notes first.
|
|
|
|
Preconditions
|
|
|
|
1. Installed Microsoft Visual C++ 6.0 or Intel C compiler and WinZip.
|
|
|
|
1.1 Installed DEC Visual Fortran compiler(6.0 or higher version),
|
|
or Intel Fortran compiler if you want to build HDF5 Fortran
|
|
libraries.
|
|
|
|
Note: By default, WinZip will convert the Unix end of line format
|
|
when extracting .tar file. This conversion will cause
|
|
"false" failure in some HDF5 tools testings.
|
|
|
|
Please uncheck the "TAR file smart CR/LF conversion" option
|
|
in your WinZip to prevent the conversion when extracting
|
|
.tar file.
|
|
|
|
To uncheck the "TAR file smart CR/LF conversion" option:
|
|
|
|
Invoke WinZip, go to "Options", select "Configuration..."
|
|
|
|
Click the "Miscellaneous" tab and uncheck "TAR file smart
|
|
CR/LF conversion" option, then click OK.
|
|
|
|
2. Set up a directory structure to unpack the library. For example:
|
|
|
|
c:\ (any drive)
|
|
MyHDFstuff\ (any folder name)
|
|
|
|
3. Download the hdf5-1.8.x source code package and use WinZip to
|
|
extract the HDF5 package into c:\MyHDFstuff. This creates a
|
|
directory called 'hdf5-1.8.x' under MyHDFstuff which contains
|
|
several files and directories. Rename "hdf5-1.8.x" to "hdf5".
|
|
|
|
4. HDF5 provide options to do in-memory compress within HDF5
|
|
library. Currently, two external compression libraries Zlib and
|
|
Szip can be used with HDF5.
|
|
|
|
4.1 HDF5 uses Zlib version 1.2.2 for compression and Zlib is NOT
|
|
distributed with HDF5 library in 1.6.x release. To use Zlib
|
|
library, you have to install your own Zlib DLL library or go
|
|
to ftp://hdf.ncsa.uiuc.edu/lib-external/zlib/bin/windows
|
|
to download the Zlib library.
|
|
|
|
Note: Zlib 1.2.2 DLL library can also be downloaded from
|
|
http://www.zlib.net/zlib122-dll.zip
|
|
|
|
4.2 HDF5 uses Szip version 2.0 for compression and Szip
|
|
compression software is provided with HDF5 products starting
|
|
from 1.6.0 release. To use Szip 2.0 library, you can
|
|
download Szip source codes and binaries from
|
|
ftp://hdf.ncsa.uiuc.edu/lib-external/szip/bin/windows
|
|
|
|
Please note that Szip is not a totally open-source free
|
|
software. For licensing issue of Szip, please check
|
|
"Licensing terms" at
|
|
http://hdf.ncsa.uiuc.edu/doc_resource/SZIP/index.html.
|
|
|
|
Compression feature inside HDF5 is optional.
|
|
|
|
5. Define the following environment variables:
|
|
|
|
HDF5_EXT_ZLIB
|
|
HDF5_EXT_SZIP
|
|
|
|
In this section, Zlib and Szip compression software are assumed
|
|
to be used. Please read section V as well as this section if you
|
|
do not want to use compression feature inside HDF5.
|
|
|
|
To define these environment variables:
|
|
|
|
Click "Start", click "Control Panel", and then double-click
|
|
"System". On the "Advanced" tab, click "Environment Variables".
|
|
|
|
If you are logged on as administrator to the local computer AND
|
|
want to let all other users use these two environment variables,
|
|
click "New" under "System Variables" box; otherwise, click "New"
|
|
under "User Variables" box.
|
|
|
|
In the New Variable window, set "Variable name" as HDF5_EXT_ZLIB
|
|
and "Variable value" as zdll.lib, then click OK.
|
|
|
|
Similarly, you can set:
|
|
|
|
HDF5_EXT_SZIP environment variable as szlibdll.lib
|
|
|
|
Notes:
|
|
|
|
a. You might have to close and reopen running programs for
|
|
the new environment variable settings to take effect.
|
|
|
|
b. c:\zlib122\zlib1.dll and c:\szip\dll\szlibdll.dll should
|
|
be copied into the location that the application can find,
|
|
one suggestion is to use the c:\WINNT\system or
|
|
c:\WINDOWS\system
|
|
|
|
6. Set up path for external libraries and headers
|
|
|
|
Skip this part if you don't want to use ANY compression feature
|
|
provided by HDF5. Please do read section V.
|
|
|
|
You have to read this part even if you want to only use Zlib
|
|
or Szip. You also need to read section V.
|
|
|
|
Invoke Microsoft Visual C++ and go to "Tools" and select
|
|
"Options", find "Directories";
|
|
|
|
6.1 Find the box "Show directories for", choose
|
|
"Include files",
|
|
If you cannot find your Zlib and Szip header path
|
|
(for example, c:\zlib122\include, c:\szip\include)
|
|
from the directory list, add the header path
|
|
(c:\zlib122\include, c:\szip\include) to the
|
|
included directories.
|
|
|
|
6.2 Find the box "Show directories for", choose "Library files",
|
|
If you cannot find your Zlib and Szip library path
|
|
(for example, c:\zlib122\lib, c:\szip\dll)
|
|
from the directory list, add the library path
|
|
(c:\zlib122\lib, c:\szip\dll) to the library directories.
|
|
|
|
Notes
|
|
|
|
1. To build HDF5 C++ and FORTRAN libraries, please read through
|
|
this document.
|
|
|
|
2. For users who want to quickly build HDF5 library or do not
|
|
want to know HDF5 building and installation details, please
|
|
read INSATLL_Windows_Short.txt.
|
|
|
|
3. For users who would like to build and test HDF5 package from the
|
|
command line, please read INSATLL_Windows_From_Command_Line.txt.
|
|
|
|
4. HDF4-related tools are not built and released with HDF5 library
|
|
packages any more. To obtain HDF4-related tools, please check
|
|
http://hdf.ncsa.uiuc.edu/h4toh5/ and
|
|
ftp://hdf.ncsa.uiuc.edu/HDF5/h4toh5/
|
|
|
|
5. For DLL users, please do read and follow "DLL hints"
|
|
at Section IV.
|
|
|
|
6. For .NET users, please read section VI.
|
|
|
|
7. For users who would like to build, test and use HDF5 snapshot
|
|
release, please read Section VII.
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
The following sections discuss installation procedures in detail:
|
|
|
|
Section I: What do we build and install
|
|
Section II: How to build and test HDF5 libraries and tools
|
|
Section III: How to build an application using the HDF5 library
|
|
or DLL
|
|
Section IV: Helpful pointers
|
|
Section V: How to disable Gzip(Zlib)/Szip compression
|
|
Section VI: How to build in HDF5 in VS 7.0(.NET)
|
|
Section VII: How to build and test HDF5 snapshot release
|
|
Section VIII: Misc.
|
|
|
|
************************************************************************
|
|
|
|
Section I: What do we build and install?
|
|
========================================================================
|
|
|
|
1. Build and Install
|
|
|
|
HDF5 static library:
|
|
debug and release version
|
|
|
|
HDF5 Dynamic Link Library(DLL):
|
|
debug and release version as well as export libraries for DLL
|
|
|
|
HDF5 tools:
|
|
HDF5 tools
|
|
|
|
2. Build Only (Not included in the binary distribution)
|
|
|
|
HDF5 tool library:
|
|
debug and release version
|
|
|
|
HDF5 tool export library for DLL:
|
|
debug and release version
|
|
|
|
HDF5 library testing programs:
|
|
HDF5 library comprehensive tests
|
|
|
|
HDF5 related tools testing programs:
|
|
HDF5 tools comprehensive tests
|
|
|
|
3. Examples (Not included in the binary distribution)
|
|
|
|
HDF5 examples:
|
|
simple HDF5 C/C++/Fortran examples
|
|
|
|
************************************************************************
|
|
|
|
|
|
Section II: How to build and test HDF5 libraries and tools
|
|
========================================================================
|
|
STEP 1: Building HDF5 libraries and tools
|
|
|
|
1. Unpack all.zip
|
|
|
|
Unpack all.zip in c:\MyHDFstuff\hdf5\windows directory. Files in
|
|
all.zip has path hdf5\.... Make sure that you extract files into
|
|
the c:\MyHDFstuff directory.
|
|
|
|
2. Invoke Microsoft Visual C++ compiler
|
|
|
|
Invoke Microsoft Visual C++. From the main menu, go to "File"
|
|
and select the "Open Workspace" option. Then open the
|
|
c:\MyHDFstuff\hdf5\proj\all\all.dsw workspace.
|
|
|
|
You should find windows project files listed as "all files,
|
|
big files etc." on the left.
|
|
|
|
3. (Optional) HDF5 C++, Fortran libraries and Intel compiler
|
|
|
|
3.1 Skip this step if you do not want to build HDF5 C++ libraries
|
|
|
|
Go to "Project" and select "dependencies";
|
|
Select "all" in the "Select project to modify:" box,
|
|
then enable the desired projects:
|
|
|
|
dsets_cpp
|
|
dsets_cppdll
|
|
hdf5_cpp
|
|
hdf5_cppdll
|
|
testhdf5_cpp
|
|
testhdf5_cppdll
|
|
|
|
3.2 Skip this step if you do not want to build HDF5 Fortran
|
|
libraries
|
|
|
|
Go to "Project" and select "dependencies";
|
|
Select "all" in the "Select project to modify:" box,
|
|
then enable the desired projects:
|
|
|
|
flush1_fortran
|
|
flush1_fortrandll
|
|
flush2_fortran
|
|
flush2_fortrandll
|
|
hdf5_f90cstub
|
|
hdf5_f90cstubdll
|
|
hdf5_fortran
|
|
hdf5_fortrandll
|
|
libtest_cstubdll
|
|
libtest_fortran
|
|
libtest_fortrandll
|
|
testhdf5_fortran
|
|
testhdf5_fortrandll
|
|
|
|
3.3 Skip this step if you are not using Intel compilers
|
|
|
|
a. Intel C Compiler
|
|
Go to Tools-->Select Compiler
|
|
Check Intel box and click OK button.
|
|
|
|
b. Intel Fortran Compiler
|
|
Go to Tools-->Select Compiler
|
|
Check Intel box and click OK button.
|
|
Go to Tools-->Customize-->Add-ins and Macro Files
|
|
and check Intel Fortran Compiler Build Tool
|
|
|
|
Note: Szip library is different when using Intel compiler.
|
|
You should build Szip source codes with Intel
|
|
compiler or download binaries for Intel compiler
|
|
from ftp://ftp.ncsa.uiuc.edu/HDF/szip/bin/windows.
|
|
The Szip library and header path should also be
|
|
set up accordingly (refer to precondition 6).
|
|
|
|
4. Select "Build", then Select "Set Active Configuration".
|
|
|
|
In "Project configurations", select the active configuration
|
|
|
|
"all -- Win32 Debug" to build debug versions of
|
|
single-threaded static libraries, Debug
|
|
multithreaded DLLs and tests.
|
|
|
|
or
|
|
|
|
"all -- Win32 Release" to build release versions of
|
|
single-threaded static libraries,
|
|
multithreaded DLLs and tests.
|
|
|
|
Then build project "all".
|
|
|
|
Warning messages can be ignored.
|
|
|
|
When the debug or release build is done the directories
|
|
listed below will contain the following files:
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5\debug -
|
|
|
|
hdf5d.lib- the hdf5 static library
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5\release -
|
|
|
|
hdf5.lib- the hdf5 static library
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5dll\debug -
|
|
|
|
hdf5ddll.dll- DLL
|
|
hdf5ddll.lib- the DLL export library
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5dll\release -
|
|
|
|
hdf5dll.dll- DLL
|
|
hdf5dll.lib- the DLL export library
|
|
|
|
c:\MyHDFstuff\hdf5\test\libtest\debug -
|
|
and c:\MyHDFstuff\hdf5\test\libtest\release -
|
|
|
|
libtest.lib - the internal library for test
|
|
|
|
c:\MyHDFstuff\hdf5\test\libtestD\debug -
|
|
|
|
libtestD.dll - the internal DLL for test
|
|
libtestD.lib - the internal DLL export library for test
|
|
|
|
c:\MyHDFstuff\hdf5\test\libtestD\release -
|
|
|
|
libtestD.dll - the internal DLL for test
|
|
libtestD.lib - the internal DLL export library for test
|
|
|
|
c:\MyHDFstuff\hdf5\tools\toolslib\debug -
|
|
and c:\MyHDFstuff\hdf5\tools\toolslib\release -
|
|
|
|
toolslib.lib- the internal tools library
|
|
|
|
c:\MyHDFstuff\hdf5\tools\toolslibD\debug -
|
|
and c:\MyHDFstuff\hdf5\tools\toolslibD\release -
|
|
|
|
toolslibD.dll- DLL
|
|
toolslibD.lib- the internal DLL export library for tools
|
|
|
|
c:\MyHDFstuff\hdf5\tools\"tools directory"-
|
|
where tools are located
|
|
|
|
The directories listed below will contain the following files
|
|
ONLY when you choose to build HDF5 C++ libraries:
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5_cpp\debug -
|
|
|
|
hdf5_cppd.lib- the HDF5 C++ API static library
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5_cpp\release -
|
|
|
|
hdf5_cpp.lib- the HDF5 C++ API static library
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5_cppdll\debug -
|
|
|
|
hdf5_cppddll.dll- the HDF5 C++ API DLL
|
|
hdf5_cppddll.lib- the C++ API DLL export library
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5_cppdll\release -
|
|
|
|
hdf5_cppdll.dll- the HDF5 C++ API DLL
|
|
hdf5_cppdll.lib- the C++ API DLL export library
|
|
|
|
The directories listed below will contain the following files
|
|
ONLY when you choose to build HDF5 Fortran libraries:
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5_fortran\debug -
|
|
|
|
hdf5_fortrand.lib- the HDF5 Fortran API static library
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5_fortran\release -
|
|
|
|
hdf5_fortran.lib- the HDF5 Fortran API static library
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5_fortrandll\debug -
|
|
|
|
hdf5_fortranddll.dll- the HDF5 Fortran API DLL
|
|
hdf5_fortranddll.lib- the HDF5 Fortran API DLL export
|
|
library
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5_fortrandll\release -
|
|
|
|
hdf5_fortrandll.dll- the HDF5 Fortran API DLL
|
|
hdf5_fortrandll.lib- the HDF5 Fortran API DLL export
|
|
library
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5_f90sctub\debug -
|
|
|
|
hdf5_f90cstubd.lib- the HDF5 C and Fortran stub static
|
|
library
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5_f90cstub\release -
|
|
|
|
hdf5_f90cstub.lib- the HDF5 C and Fortran stub static
|
|
library
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5_f90sctubdll\debug -
|
|
|
|
hdf5_f90cstubddll.dll- the HDF5 C and Fortran stub DLL
|
|
hdf5_f90cstubddll.lib- the HDF5 C and Fortran stub DLL
|
|
export library
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5_f90cstubdll\release -
|
|
|
|
hdf5_f90cstubdll.dll- the HDF5 C and Fortran stub DLL
|
|
hdf5_f90cstubdll.lib- the HDF5 C and Fortran stub DLL
|
|
export library
|
|
|
|
c:\MyHDFstuff\hdf5\fortran\test\libtest_cstubdll\debug -
|
|
|
|
libtest_cstubddll.dll- the HDF5 Fortran test C and
|
|
Fortran stub DLL
|
|
libtest_cstubddll.lib- the HDF5 Fortran test C and
|
|
Fortran stub DLL export library
|
|
|
|
c:\MyHDFstuff\hdf5\fortran\test\libtest_cstubdll\release -
|
|
|
|
libtest_cstubdll.dll- the HDF5 Fortran test C and
|
|
Fortran stub DLL
|
|
libtest_cstubdll.lib- the HDF5 Fortran test C and
|
|
Fortran stub DLL export library
|
|
|
|
c:\MyHDFstuff\hdf5\fortran\test\libtest_fortran\debug -
|
|
|
|
libtest_fortrand.lib- the HDF5 Fortran test static
|
|
library
|
|
|
|
c:\MyHDFstuff\hdf5\fortran\test\libtest_fortran\release -
|
|
|
|
libtest_fortran.lib- the HDF5 Fortran test static
|
|
library
|
|
|
|
c:\MyHDFstuff\hdf5\fortran\test\libtest_fortrandll\debug -
|
|
|
|
libtest_fortranddll.dll- the HDF5 Fortran test DLL
|
|
libtest_fortranddll.lib- the HDF5 Fortran test DLL
|
|
export library
|
|
|
|
c:\MyHDFstuff\hdf5\fortran\test\libtest_fortran\release -
|
|
|
|
libtest_fortrandll.dll- the HDF5 Fortran test DLL
|
|
libtest_fortrandll.lib- the HDF5 Fortran test DLL
|
|
export library
|
|
|
|
|
|
STEP 2: Testing HDF5 libraries and tools
|
|
|
|
HDF5 libraries and tools should be tested to make sure that they were
|
|
built correctly.
|
|
|
|
We provide 2 options for users to test HDF5 libraries and tools.
|
|
|
|
Option 1: Automatic testings
|
|
|
|
HDF5 comes with various test suites, all of which can be tested
|
|
with hdf5check.bat batch file in c:\MyHDFstuff\hdf5 directory.
|
|
|
|
hdf5check batch file can be run with one of the following four
|
|
options:
|
|
|
|
hdf5check test HDF5 C library and tools only
|
|
|
|
hdf5check enablecpp test HDF5 C/C++ libraries and tools
|
|
To use this option, HDF5 C++
|
|
libraries must have been built
|
|
in step I.
|
|
|
|
hdf5check enablefortran test HDF5 C/FORTRAN libraries and
|
|
tools
|
|
To use this option, HDF5 Fortran
|
|
libraries must have been built
|
|
in step I.
|
|
|
|
hdf5check enableall test HDF5 C/C++/FORTRAN libraries
|
|
and tools
|
|
To use this option, HDF5 C++ and
|
|
Fortran libraries must have been
|
|
built in step I.
|
|
|
|
Invoke a command prompt window and run hdf5check with appropriate
|
|
option.
|
|
|
|
Test results are saved in two files:
|
|
|
|
c:\MyHDFstuff\hdf5\check_results.txt
|
|
|
|
c:\MyHDFstuff\hdf5\tests_results.txt.
|
|
|
|
In general, you only need to check tests_results.txt. If all the
|
|
tests passed, then you do not have to check check_results.txt.
|
|
If some tests failed, check check_results.txt can help you
|
|
figure out what was wrong.
|
|
|
|
Option 2: Step-by-step HDF5 libraries and tools testings
|
|
|
|
You can also test HDF5 libraries and tools one by one. There are
|
|
possibly four versions of HDF5 libraries and tools testings.
|
|
|
|
They are:
|
|
|
|
release version
|
|
release dll version
|
|
debug version
|
|
debug dll version
|
|
|
|
We strongly suggest you to redirect your testing results into an
|
|
output file so that you can easily check the testing results. You
|
|
may use either Notepad or WordPad or whatever other windows word
|
|
processor to check the results. For the purpose of printing,
|
|
please choose font less than 14 for better alignment of the text.
|
|
|
|
DLLs listed below should be placed into the Windows system
|
|
directory. A batch file named install_dll.bat is included in
|
|
c:\MyHDFstuff\hdf5 directory. Run this batch file and the
|
|
following HDF5 DLLs will be copied to the system directory.
|
|
|
|
hdf5\proj\hdf5dll\release\hdf5dll.dll
|
|
hdf5\proj\hdf5dll\debug\hdf5ddll.dll
|
|
hdf5\test\libtestD\release\libtestD.dll
|
|
hdf5\test\libtestD\debug\libtestDd.dll
|
|
|
|
1. HDF5 library testing
|
|
|
|
cd into the hdf5\test directory.
|
|
|
|
(1) basic tests
|
|
|
|
Go to a) b) c) or d) to test your chosen version
|
|
|
|
a) release static version
|
|
type:
|
|
hdf5test release >"Your output filename"
|
|
|
|
b) release dll version
|
|
type:
|
|
hdf5test release dll > "Your output filename"
|
|
|
|
c) debug static version
|
|
type:
|
|
hdf5test debug >"Your output filename"
|
|
|
|
d) debug dll version
|
|
type:
|
|
hdf5test debug dll >"Your output filename"
|
|
|
|
(2) timing tests
|
|
|
|
Go to a) b) c) or d) to test your chosen version
|
|
|
|
a) release static version
|
|
type:
|
|
hdf5timingtest release >"Your output filename"
|
|
|
|
b) release dll version
|
|
type:
|
|
hdf5timingtest release dll >"Your output filename"
|
|
|
|
c) debug static version
|
|
type:
|
|
hdf5timingtest debug >"Your output filename"
|
|
|
|
d) debug dll version
|
|
type:
|
|
hdf5timingtest debug dll >"Your output filename"
|
|
|
|
Use Notepad or WordPad to check results. You should
|
|
not find any FAILED marks in your output files.
|
|
|
|
2. HDF5 tools testing
|
|
|
|
To test HDF5 tools, cd back into hdf5 directory and then cd into
|
|
tools directory(c:\MyHDFstuff\hdf5\tools). The HDF5 tools testing
|
|
results are saved into output files in tools directory by the
|
|
testhdf5tools.bat as described below.
|
|
|
|
Go to a) b) c) or d) to test your chosen version
|
|
|
|
a) release static version
|
|
type:
|
|
testhdf5tools release
|
|
output file: toolstest_release.txt
|
|
|
|
b) release dll version
|
|
type:
|
|
testhdf5tools release dll
|
|
output file: toolstest_releasedll.txt
|
|
|
|
c) debug static version
|
|
type:
|
|
testhdf5tools debug
|
|
output file: toolstest_debug.txt
|
|
|
|
d) debug dll version
|
|
type:
|
|
testhdf5tools debug dll
|
|
output file: toolstest_debugdll.txt
|
|
|
|
Use Notepad or WordPad to check results. You should
|
|
not find any FAILED marks in your output files.
|
|
|
|
3. HDF5 C++ library test
|
|
|
|
Skip this step UNLESS you have built HDF5 C++ libraries
|
|
and want to test them.
|
|
|
|
DLLs listed below should be placed into to the Windows system
|
|
directory. A batch file named install_cppdll.bat is included in
|
|
c:\MyHDFstuff\hdf5 directory. Run this batch file and the
|
|
following HDF5 C++ DLLs will be copied to the system directory.
|
|
|
|
hdf5\proj\hdf5_cppdll\release\hdf5_cppdll.dll
|
|
hdf5\proj\hdf5_cppdll\debug\hdf5_cppddll.dll
|
|
|
|
Run hdf5cpptest.bat in the hdf5\c++\test directory at the
|
|
command prompt as below:
|
|
|
|
hdf5cpptest release >"Your output filename"
|
|
hdf5cpptest release dll >"Your output filename"
|
|
hdf5cpptest debug >"Your output filename"
|
|
hdf5cpptest debug dll >"Your output filename"
|
|
|
|
Use Notepad or WordPad to check results. You should
|
|
not find any FAILED marks in your output files.
|
|
|
|
4. HDF5 Fortran library test
|
|
|
|
Skip this step UNLESS you have built HDF5 Fortran libraries
|
|
and want to test them.
|
|
|
|
DLLs listed below should be placed into to the Windows system
|
|
directory. A batch file named install_f90dll.bat is included in
|
|
c:\MyHDFstuff\hdf5 directory. Run this batch file and the
|
|
following HDF5 Fortran DLLs will be copied to the system
|
|
directory.
|
|
|
|
hdf5\proj\hdf5_f90cstubdll\release\hdf5_f90cstubdll.dll
|
|
hdf5\proj\hdf5_f90cstubdll\debug\hdf5_f90cstubddll.dll
|
|
hdf5\proj\hdf5_fortrandll\release\hdf5_fortrandll.dll
|
|
hdf5\proj\hdf5_fortrandll\debug\hdf5_fortranddll.dll
|
|
hdf5\fortran\test\libtest_cstubdll\release\libtest_cstubdll.dll
|
|
hdf5\fortran\test\libtest_cstubdll\debug\libtest_cstubddll.dll
|
|
hdf5\fortran\test\libtest_fortrandll\release\libtest_fortrandll.dll
|
|
hdf5\fortran\test\libtest_fortrandll\debug\libtest_fortranddll.dll
|
|
|
|
Run testhdf5_fortran.bat at the command prompt as below:
|
|
|
|
testhdf5_fortran release >"Your output filename"
|
|
testhdf5_fortran release dll >"Your output filename"
|
|
testhdf5_fortran debug >"Your output filename"
|
|
testhdf5_fortran debug dll >"Your output filename"
|
|
|
|
Use Notepad or WordPad to check results. You should
|
|
not find any FAILED marks in your output files.
|
|
|
|
|
|
STEP 3: Installing HDF5 Libraries
|
|
|
|
We provide a batch file for users to relocate all HDF5 libraries in one
|
|
folder (C++ and Fortran libraries will also be copied into this folder
|
|
if they have been built in step I). The file is called
|
|
installhdf5lib.bat under c:\MyHDFstuff\hdf5 directory. Run the batch
|
|
file, you may see a folder called hdf5lib under c:\MyHDFstuff\hdf5.
|
|
|
|
The <release> layout of <hdf5lib> should be:
|
|
|
|
release\include -- HDF5 header files
|
|
release\bin -- HDF5 static tool executables
|
|
release\bindll -- HDF5 DLL tool executables
|
|
release\lib -- HDF5 static libraries
|
|
release\dll -- HDF5 DLLs
|
|
|
|
You may also find the similar layout for the <debug>.
|
|
|
|
|
|
STEP 4: Building HDF5 C/C++/Fortran examples (Optional)
|
|
|
|
Simple examples have been provided for users to test HDF5
|
|
C/C++/Fortran library and tools.
|
|
|
|
Note:
|
|
1) To build HDF5 C++ examples, HDF5 C++ library must have been
|
|
built in step I.
|
|
|
|
2) To build HDF5 Fortran examples, HDF5 Fortran library must
|
|
have been built in step I.
|
|
|
|
3) By default, the debug versions of HDF5 C/C++/Fortran examples
|
|
are linked with the debug versions of HDF5 C/C++/Fortran
|
|
libraries and DLLs. The debug versions of HDF5 C/C++/Fortran
|
|
examples will fail if they are linked with HDF5 binary
|
|
distribution, which only includes the release versions of
|
|
HDF5 C/C++/Fortran libraries and DLLs.
|
|
|
|
To build and test HDF5 C examples:
|
|
|
|
1. Invoke Microsoft Visual C++, go to "File" and select
|
|
the "Open Workspace" option.
|
|
|
|
Then open the workspace
|
|
c:\MyHDFstuff\hdf5\examples\allexamples\allexamples.dsw.
|
|
|
|
2. Select "Build", then Select "Set Active Configuration".
|
|
|
|
In "Project configurations", select the active configuration
|
|
|
|
"allexamples -- Win32 Debug" to build debug versions of the
|
|
C examples.
|
|
|
|
or
|
|
|
|
"allexamples -- Win32 Release" to build release versions the
|
|
C examples.
|
|
|
|
When the debug build or release build is done, there should be the
|
|
following subdirectories in c:\MyHDFstuff\hdf5\examples\
|
|
|
|
attributetest
|
|
attributetestdll
|
|
chunkread
|
|
chunkreaddll
|
|
compoundtest
|
|
compoundtestdll
|
|
extendwritetest
|
|
extendwritetestdll
|
|
grouptest
|
|
grouptestdll
|
|
readtest
|
|
readtestdll
|
|
selecttest
|
|
selecttestdll
|
|
writetest
|
|
writetestdll
|
|
|
|
3. Invoke a command prompt window and run the batch file
|
|
InstallExamples.bat which resides in the top level directory
|
|
(c:\MyHDFstuff\hdf5). This file creates 4 new directories,
|
|
examplesREL, examplesRELDLL, examplesDBG, and examplesDBGDLL,
|
|
in the c:\MyHDFstuff\hdf5\examples directory and places all the
|
|
executables in it. Both the release and debug versions of the
|
|
examples should be built before this step is done.
|
|
|
|
4. We provide a batch file named testExamples.bat and an expected
|
|
examples tests output file named testExamples_exp_output.txt
|
|
in c:\MyHDFstuff\hdf5\examples directory for you to test HDF5
|
|
C examples.
|
|
|
|
testExamples.bat batch file has 4 options:
|
|
|
|
testExamples release -- for release version
|
|
|
|
testExamples release dll -- for release DLL version
|
|
|
|
testExamples debug -- for debug version
|
|
|
|
testExamples debug dll -- for debug DLL version
|
|
|
|
Invoke a command prompt window and run testExamples with
|
|
appropriate options. You should get "All HDF5 C examples tests
|
|
passed." when the C examples are built successfully. Otherwise,
|
|
the difference between the expected outputs and actual outputs
|
|
will be given.
|
|
|
|
To build and test HDF5 C++ examples:
|
|
|
|
1. Invoke Microsoft Visual C++, go to "File" and select
|
|
the "Open Workspace" option.
|
|
|
|
Then open the workspace
|
|
c:\myHDFstuff\hdf5\c++\examples\allcppexamples\allcppexamples.dsw.
|
|
|
|
2. Select "Build", then Select "Set Active Configuration".
|
|
|
|
In "Project configurations", select the active configuration
|
|
|
|
"allcppexamples -- Win32 Debug" to build debug versions of the
|
|
C++ examples.
|
|
|
|
or
|
|
|
|
"allcppexamples -- Win32 Release" to build release versions the
|
|
C++ examples.
|
|
|
|
When the debug build or release build is done, there should be the
|
|
following subdirectories in c:\MyHDFstuff\hdf5\c++\examples\
|
|
|
|
chunkstest
|
|
chunkstestdll
|
|
compoundtest
|
|
compoundtestdll
|
|
createtest
|
|
createtestdll
|
|
extend_dstest
|
|
extend_dstestdll
|
|
h5grouptest
|
|
h5grouptestdll
|
|
readdatatest
|
|
readdatatestdll
|
|
writedatatest
|
|
writedatatestdll
|
|
|
|
3. Invoke a command prompt window and run the batch file
|
|
InstallcppExamples.bat which resides in the top level directory
|
|
(c:\MyHDFstuff\hdf5). This file creates 4 new directories,
|
|
cppexamplesREL, cppexamplesRELDLL, cppexamplesDBG,
|
|
and cppexamplesDBGDLL, in the c:\MyHDFstuff\c++\examples
|
|
directory and places all the executables in it. Both the release
|
|
and debug versions of the examples should be built before this
|
|
step is done.
|
|
|
|
4. We provide a batch file named testcppExamples.bat in
|
|
c:\MyHDFstuff\hdf5\c++\examples directory for you to test HDF5
|
|
C++ examples.
|
|
|
|
testcppExamples.bat batch file has 4 options:
|
|
|
|
testcppExamples release -- for release version
|
|
|
|
testcppExamples release dll -- for release DLL version
|
|
|
|
testcppExamples debug -- for debug version
|
|
|
|
testcppExamples debug dll -- for debug DLL version
|
|
|
|
Invoke a command prompt window and run testcppExamples with
|
|
appropriate options. You should get "All HDF5 C++ examples tests
|
|
passed." when the C++ examples are built successfully. Otherwise,
|
|
the difference between the expected outputs and actual outputs
|
|
will be given.
|
|
|
|
To build and test HDF5 Fortran example:
|
|
|
|
1. Invoke Compaq visual Fortran or intel Fortran under Microsoft
|
|
Visual studio development environment, go to "File" and select
|
|
the "Open Workspace" option.
|
|
|
|
Then open the workspace
|
|
c:\MyHDFstuff\hdf5\fortran\examples\allf90examples\allf90examples.dsw.
|
|
|
|
2. Select "Build", then Select "Set Active Configuration".
|
|
|
|
In "Project configurations", select the active configuration
|
|
|
|
"allf90examples -- Win32 Debug" to build debug versions of the
|
|
Fortran examples.
|
|
|
|
or
|
|
|
|
"allf90examples -- Win32 Release" to build release versions the
|
|
Fortran examples.
|
|
|
|
When the debug build or release build is done, there should be the
|
|
following subdirectories in c:\MyHDFstuff\hdf5\fortran\examples\
|
|
|
|
attreexampletest
|
|
attreexampletestdll
|
|
compoundtest
|
|
compoundtestdll
|
|
dsetexampletest
|
|
dsetexampletestdll
|
|
fileexampletest
|
|
fileexampletestdll
|
|
groupexampletest
|
|
groupexampletestdll
|
|
grpdsetexampletest
|
|
grpdsetexampletestdll
|
|
grpittest
|
|
grpittestdll
|
|
grpsexampletest
|
|
grpsexampletestdll
|
|
hyperslabtest
|
|
hyperslabtestdll
|
|
mountexampletest
|
|
mountexampletest
|
|
refobjexampletest
|
|
refobjexampletestdll
|
|
refregexampletest
|
|
refregexampletestdll
|
|
rwdsetexampletest
|
|
rwdsetexampletestdll
|
|
selecteletest
|
|
selecteletestdll
|
|
|
|
3. Invoke a command prompt window and run the batch file
|
|
Installf90Examples.bat which resides in the top level directory
|
|
(c:\MyHDFstuff\hdf5). This file creates 4 new directories,
|
|
f90examplesREL, f90examplesRELDLL, f90examplesDBG, and
|
|
f90examplesDBGDLL, in the c:\MyHDFstuff\fortran\examples directory
|
|
and places all the executables in it. Both the release and debug
|
|
versions of the examples should be built before this step is done.
|
|
|
|
************************************************************************
|
|
|
|
|
|
Section III: Building an application using the HDF5 library or DLL
|
|
========================================================================
|
|
Waring: The instructions below will only describe how to build an
|
|
application using the release version of the HDF5 library or
|
|
DLL. To use the debug version of the HDF5 library or DLL, you
|
|
need to substitute the release version of the HDF5 library or
|
|
DLL with the debug version.
|
|
|
|
To use HDF5 static library
|
|
|
|
To build an application that uses the HDF5 static library the
|
|
following locations will need to be specified for locating header
|
|
files and linking with the HDF static library, for example:
|
|
|
|
c:\MyHDFstuff\hdf5\hdf5lib\include
|
|
c:\MyHDFstuff\hdf5\hdf5lib\release\lib
|
|
|
|
if you have installed HDF5 library in Section II, step 3.
|
|
|
|
We assume that you will use Zlib and Szip compression with HDF5
|
|
library.
|
|
|
|
To specify these locations in the settings for your VC++ project,
|
|
you may choose one of the following two methods.
|
|
|
|
1) Method One
|
|
|
|
To insert the path that specifies HDF5 and Zlib, Szip header files:
|
|
|
|
1. Open your VC++ project in Microsoft Visual C++ and make sure it
|
|
is the active project.
|
|
|
|
2. Go to the Project menu and chose the "Settings" option.
|
|
|
|
3. Choose the build configuration you would like to modify in the
|
|
drop down menu labeled with "Settings For:"
|
|
|
|
4. Choose the C/C++ tab
|
|
|
|
5. Choose "Preprocessor" in the drop down menu labeled with
|
|
"Category:"
|
|
|
|
6. In a text-area labeled with "Additional include directories:",
|
|
add HDF5, Zlib, and Szip header files directories. For example:
|
|
|
|
c:\MyHDFstuff\hdf5\hdf5lib\include
|
|
c:\zlib122\include
|
|
c:\szip\include
|
|
|
|
Then click OK.
|
|
|
|
7. (optional) to use HDF5 Fortran static library, the location of
|
|
Fortran module files should be specified by following
|
|
Project->Settings->Fortran->Preprocessor,
|
|
and in a test-area labeled with "INCLUDE and USE Paths:", add
|
|
HDF5 Fortran module files directories. For example:
|
|
|
|
c:\MyHDFstuff\hdf5\hdf5lib\include
|
|
|
|
To link the HDF5 library with your application:
|
|
|
|
1. Open your VC++ project in Microsoft Visual C++ and make sure it
|
|
is the active project.
|
|
|
|
2. Go to the Project menu and chose the "Add to Project" option and
|
|
then "Files" option.
|
|
|
|
3. Change the "Files of type:" to "Library Files (.lib)"
|
|
|
|
4. Navigate through the directories until you find the location of
|
|
the hdf5.lib.
|
|
|
|
5. Select hdf5.lib and click OK.
|
|
|
|
6. repeat 1-5, to select zdll.lib and szlibdll.lib.
|
|
|
|
7. (optional) repeat 1-5, to select hdf5_cpp.lib to link with HDF5
|
|
C++ static library.
|
|
|
|
8. (optional) repeat 1-5, to select hdf5_fortran.lib to link with
|
|
HDF5 Fortran static library.
|
|
|
|
2) Method Two
|
|
|
|
1. Go to Tools->Options->Directories,
|
|
|
|
2. Insert the correct HDF5, Zlib, Szip paths for both headers(include)
|
|
and libraries. For example,
|
|
|
|
c:\MyHDFstuff\hdf5\hdf5lib\include
|
|
c:\MyHDFstuff\hdf5\hdf5lib\lib
|
|
c:\zlib122\include
|
|
c:\zlib122\lib
|
|
c:\szip\include
|
|
c:\szip\dll
|
|
|
|
3. Go to the Project menu and choose the "Settings" option.
|
|
|
|
4. Find the "link" option and "Input" category, insert
|
|
"zdll.lib, szlibdll.lib, hdf5.lib".
|
|
|
|
5. (Optional) repeat 3-4, to insert "hdf5_cpp.lib" if you want to
|
|
use HDF5 C++ static library.
|
|
|
|
6. (Optional) repeat 3-4, to insert "hdf5_fortran.lib" if you want to
|
|
use HDF5 Fortran static library.
|
|
|
|
|
|
To use the DLL:
|
|
|
|
1. Follow the steps for specifying the location of the header files
|
|
as shown above.
|
|
|
|
2. Follow the steps for linking the HDF5 library as shown above
|
|
except now link the export library that is created with the DLL.
|
|
The export library is called hdf5dll.lib for HDF5 C libray,
|
|
hdf5_cppdll.lib for HDF5 C++ library, and hdf5_fortrandll.lib
|
|
for HDF5 Fortran library.
|
|
|
|
3. Place the DLL in a location that Windows will be able to locate
|
|
it. The searched path and order for DLL's is
|
|
|
|
a) The directory where the executable module for the current
|
|
process is located.
|
|
b) The current directory.
|
|
c} The Windows system directory. The GetSystemDirectory function
|
|
retrieves the path of this directory.
|
|
d) The Windows directory. The GetWindowsDirectory function
|
|
retrieves the path of this directory.
|
|
e) The directories listed in the PATH environment variable.
|
|
|
|
4. To modify your own application settings, please DO FOLLOW the
|
|
"DLL Hints" at section IV "HELPFUL POINTERS".
|
|
|
|
************************************************************************
|
|
|
|
|
|
Section IV: HELPFUL POINTERS
|
|
========================================================================
|
|
|
|
Here are some notes that may be of help if you are not familiar with
|
|
using the Visual C++ Development Environment.
|
|
|
|
Project name and location issues:
|
|
|
|
If you must install all.dsw and all.dsp in another directory,
|
|
relative to hdf5 directory, you will be asked to locate the
|
|
sub-project files, when you open the project all.dsw.
|
|
|
|
If you want to rename all (the entire project), you will need to
|
|
modify two files all.dsw and all.dsp as text (contrary to the
|
|
explicit warnings in the files).
|
|
|
|
You can also modify all.dsw and all.dsp as text, to allow these 2
|
|
files to be installed in another directory.
|
|
|
|
|
|
Settings... details:
|
|
|
|
If you create your own project, the necessary settings can be read
|
|
from the all.dsp file(as text), or from the Project Settings in the
|
|
Developer Studio project settings dialog.
|
|
|
|
Project
|
|
Settings
|
|
C/C++
|
|
Category
|
|
Code Generation
|
|
Use run-time Library
|
|
These are all set to use Single-Threaded
|
|
|
|
DLL... hints:
|
|
|
|
If you want to use DLL versions of HDF5 library in your application,
|
|
you should
|
|
1) put HDF5 DLL into windows system directory
|
|
2) add HDF5 DLL export library into your project
|
|
3) Follow "Settings... details" into the last line:
|
|
change Single-Threaded into Multithreaded DLL or
|
|
Debug Multithreaded DLL
|
|
4) Follow "Settings.. details" into PreProcessor:
|
|
Project
|
|
Settings
|
|
C/C++
|
|
Category
|
|
PreProcessor
|
|
|
|
Find PreProcessor definations and Add _HDF5USEDLL_ at the
|
|
end of the PreProcessor definitions to use HDF5 C DLL.
|
|
|
|
5) (optional) repeat 4), add HDF5CPP_USEDLL at the
|
|
end of the PreProcessor definitions to use HDF5 C++ DLL.
|
|
|
|
6) (optional) Follow Project->Settings->Fortran->Category->
|
|
General->Predefined Preprocess or Symbols, and add
|
|
"HDF5F90_WINDOWS" to use HDF5 Fortran DLL.
|
|
|
|
************************************************************************
|
|
|
|
|
|
Section V: How to disable Gzip(Zlib)/Szip compression
|
|
|
|
Warning: When you modify the H5pubconf.h file as described below,
|
|
DO NOT just change the values of these macros from 1 to 0.
|
|
Please DO remove(or comment out) appropriate lines.
|
|
|
|
1. Disable Gzip compression
|
|
|
|
If you would like to remove Gzip compression from the HDF5
|
|
library, follow the steps below.
|
|
|
|
1.1 Open the H5pubconf.h file from the c:\MyHDFstuff\hdf5\src
|
|
directory and remove(or comment out) the following two lines:
|
|
|
|
#define H5_HAVE_ZLIB_H 1
|
|
#define H5_HAVE_FILTER_DEFLATE 1
|
|
|
|
then save the file.
|
|
|
|
1.2 Delete HDF5_EXT_ZLIB environment variable if you have
|
|
set it in preconditions.
|
|
|
|
1.3 Run-compile HDF5 library according to section II.
|
|
|
|
When you disable Gzip, you may get the following message
|
|
when building HDF5 libraries:
|
|
|
|
The following environment variables were not found
|
|
$(HDF5_EXT_ZLIB)
|
|
|
|
This message can be ignored.
|
|
|
|
2. Disable Szip compression (both encoder and decoder)
|
|
|
|
If you would like to remove Szip compression from the HDF5
|
|
library, follow the steps below.
|
|
|
|
2.1 Open the H5pubconf.h file from the c:\MyHDFstuff\hdf5\src
|
|
directory and remove(or comment out) the following three
|
|
lines:
|
|
|
|
#define H5_HAVE_SZLIB_H 1
|
|
#define H5_HAVE_FILTER_SZIP 1
|
|
#define H5_SZIP_CAN_ENCODE 1
|
|
|
|
then save the file.
|
|
|
|
2.2 Delete HDF5_EXT_SZIP environment variable if you have
|
|
set it in preconditions.
|
|
|
|
2.3 Run-compile HDF5 library according to section II.
|
|
|
|
When you disable Szip, you may get the following message
|
|
when building HDF5 libraries:
|
|
|
|
The following environment variables were not found
|
|
$(HDF5_EXT_SZIP)
|
|
|
|
This message can be ignored.
|
|
|
|
Note:
|
|
|
|
To disable Gzip and Szip at the same time, just follow 1.1~1.3
|
|
and 2.1~2.4 and run-compile HDF5 library according to section II.
|
|
|
|
3. Disable Szip encoder
|
|
|
|
If you would like to just disable Szip encoder from the HDF5
|
|
library while keeping Szip decoder enabled, follow the steps
|
|
below.
|
|
|
|
3.1 Download Szip library without encoder
|
|
|
|
Szip library is different if you want to disable Szip encoder.
|
|
Download szip_noencoder binaries from
|
|
ftp://ftp.ncsa.uiuc.edu/HDF/szip/bin/windows.
|
|
The Szip library and header path should also be set up
|
|
accordingly (refer to precondition 6).
|
|
|
|
3.2 Open the H5pubconf.h file from the c:\MyHDFstuff\hdf5\src
|
|
directory and remove (or comment out) the following line:
|
|
|
|
#define H5_SZIP_CAN_ENCODE 1
|
|
|
|
then save the file.
|
|
|
|
3.3 Run-compile HDF5 library according to section II.
|
|
|
|
************************************************************************
|
|
|
|
|
|
Section VI: How to build HDF5 in VS 7.0(.NET)
|
|
========================================================================
|
|
|
|
We just briefly introduce you how to build HDF5 in VS 7.0(.NET);
|
|
|
|
1. Open the old workspace file with the "Open solution" option,
|
|
.NET will automatically convert the data space file to solution file.
|
|
2. Then find "Build" and go to "Configuration Manager"; choose
|
|
"release" or "debug", then choose "build all".
|
|
3. If you want to change some project setting, select the project and
|
|
right click the button to choose Properties; find the similar menu
|
|
there as in 6.0.
|
|
4. You need to specify the zlib and szip include header files and
|
|
libraries under Tools->Options->Projects->VC++ Directories and choose
|
|
Include and libraries under the category of "show directories for" to
|
|
add the corresponding path if you want to use compression feature
|
|
inside HDF5.
|
|
|
|
NOTE: Please read section V if you do not want to use compression
|
|
feature inside HDF5.
|
|
|
|
************************************************************************
|
|
|
|
|
|
Section VII: Building and testing HDF5 snapshot release
|
|
========================================================================
|
|
|
|
Note: This section is only for users who would like to build and test
|
|
HDF5 snapshot release.
|
|
|
|
If you want to test and build HDF5 snapshot release, you need extra
|
|
steps to automatically generate H5Tinit.c before going to section II
|
|
step 1(2).
|
|
|
|
Previous step: section II, step 1(1).
|
|
Extra steps:
|
|
1) After extracting all.zip to the correct path, open the
|
|
c:\myHDFstuff\hdf5\misc\typegen\typegen.dsw.
|
|
2) Build the project file.
|
|
3) Invoke command prompt and go to c:\myHDFstuff\hdf5\src.
|
|
4) type H5Tinit.exe >H5Tinit.c
|
|
5) Go back to section II, continue with step 1(2).
|
|
|
|
************************************************************************
|
|
|
|
|
|
Section VIII: Misc.
|
|
========================================================================
|
|
|
|
1) drivers we support
|
|
The default driver on windows we support is sec2 driver. However, stdio
|
|
driver is also supported. If you want to use stdio driver in your
|
|
application, you may set environment variable HDF5_DRIVER to "stdio".
|
|
|
|
On windows 2000/XP, the following steps should be followed to set the
|
|
environment variable,
|
|
|
|
a) Go to Control panel and find "system",
|
|
b) Click "system" and choose "advanced",
|
|
c) Choose Environment Variables
|
|
d) Add new variable "HDF5_DRIVER"
|
|
e) set the "HDF5_DRIVER" to "stdio"
|
|
|
|
Reminder: if you don't want to use stdio driver, please remember to
|
|
delete the environment variable "HDF5_DRIVER" or change the variable
|
|
value to "sec2".
|
|
|
|
|
|
Please send email to hdfhelp@ncsa.uiuc.edu for further assistance.
|
|
|