mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-11-27 02:10:55 +08:00
6f64a5d838
Purpose: update, remove hdf4-related stuff. Description: hdf4 related tools have been moved out of HDF5 CVS tree, The install doc should reflect this. Solution: Platforms tested:
575 lines
16 KiB
Plaintext
575 lines
16 KiB
Plaintext
HDF5 Build and Install Instructions for Windows 2000/NT/98.
|
|
----------------------------------------------------------
|
|
|
|
The instructions which follow assume that you will be using the
|
|
source code release 'zip' file (hdf5-1_4_3.zip).
|
|
|
|
***************************WARNINGS****************************
|
|
Please read CAREFULLY about Preconditions before you go to the
|
|
following sections
|
|
|
|
Preconditions
|
|
|
|
1. Installed MicroSoft Developer Studio,Visual C++ 6.0 and
|
|
WinZip.
|
|
|
|
2. Set up a directory structure to unpack the library.
|
|
For example:
|
|
|
|
c:\ (any drive)
|
|
MyHDFstuff\ (any folder name)
|
|
|
|
3. Run WinZip on hdf5-1_4_3.zip (the entire source tree) and
|
|
extract hdf5 package into c:\MyHDFstuff(or whatever drive
|
|
and folder name you would like to choose). This creates a
|
|
directory called 'hdf5xxx'under MyHDFstuff which contains
|
|
several files and directories. Rename the directory
|
|
"hdf5xxx" into "hdf5".
|
|
|
|
4. HDF5 uses zlib for compression and zlib is distributed
|
|
with hdf5 lib. If you have your own version read section
|
|
VI about the zlib library.
|
|
|
|
|
|
---------------------------------------------------------------
|
|
|
|
The following sections discuss installation procedures in detail:
|
|
|
|
Section I: What do we build and install
|
|
Section II: Building and testing hdf5 libraries and non-hdf4
|
|
related hdf5 tools
|
|
tools
|
|
Section III: Building an application using the HDF5 library or
|
|
DLL
|
|
Section IV: Some more helpful pointers
|
|
Section V: ZLIB library - removing or changing the path
|
|
|
|
***************************************************************
|
|
|
|
Section I:
|
|
|
|
What do we 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 tool library:
|
|
debug and release version
|
|
|
|
HDF5 tool export library for DLL:
|
|
debug and release version
|
|
|
|
HDF5 tools:
|
|
non-hdf4 related tools
|
|
for hdf4 related tools, please check http://hdf.ncsa.uiuc.edu/h4toh5/
|
|
and ftp://hdf.ncsa.uiuc.edu/HDF5/h4toh5/
|
|
|
|
|
|
HDF5 library testing programs:
|
|
hdf5 library related comprehensive tests
|
|
|
|
HDF5 related tools testing programs:
|
|
hdf5 tools testing programs
|
|
|
|
HDF5 examples:
|
|
simple HDF5 examples
|
|
|
|
**************************************************************
|
|
|
|
Section II:
|
|
|
|
Building and testing hdf5 libraries and non-hdf4 related tools
|
|
|
|
==================================================
|
|
|
|
STEP 1: Building hdf5 libraries and non-hdf4 related tools
|
|
|
|
|
|
1. Unpack all.zip in 'hdf5' and move the zlib.dll from
|
|
c:\myHDFstuff\hdf5\src\zlib\dll to the Windows system
|
|
directory.
|
|
|
|
The system directory can usually be found under the path
|
|
C:\WINNT\system or C:\WINDOWS\system
|
|
|
|
2. Invoke Microsoft Visual C++, go to "File" and select
|
|
the "Open Workspace" option.
|
|
|
|
Then open the c:\myHDFstuff\hdf5\proj\all\all.dsw
|
|
workspace.
|
|
|
|
3. Select "Build", then Select "Set Active Configuration".
|
|
|
|
On Windows platform select as 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.
|
|
|
|
|
|
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 -
|
|
c:\MyHDFstuff\hdf5\proj\hdf5\release -
|
|
|
|
hdf5.lib- the hdf5 library
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5dll\debug -
|
|
|
|
hdf5ddll.dll- the hdf5 library
|
|
hdf5ddll.lib- the dll export library
|
|
|
|
c:\MyHDFstuff\hdf5\proj\hdf5dll\release -
|
|
|
|
hdf5dll.dll- the hdf5 library
|
|
hdf5dll.lib- the dll export library
|
|
|
|
c:\MyHDFstuff\hdf5\test\"test directory"-
|
|
|
|
where test directory is one of the following:
|
|
|
|
big(dll)
|
|
|
|
bittests(dll)
|
|
|
|
chunk(dll)
|
|
|
|
cmpd_dset(dll)
|
|
|
|
dsets(dll)
|
|
|
|
dtypes(dll)
|
|
|
|
enum(dll)
|
|
|
|
extend(dll)
|
|
|
|
external(dll)
|
|
|
|
fillval(dll)
|
|
|
|
flush1(dll)
|
|
|
|
flush2(dll)
|
|
|
|
gheap(dll)
|
|
|
|
hyperslab(dll)
|
|
|
|
iopipe(dll)
|
|
|
|
istore(dll)
|
|
|
|
links(dll)
|
|
|
|
mount(dll)
|
|
|
|
mtime(dll)
|
|
|
|
ohdr(dll)
|
|
|
|
overhead(dll)
|
|
|
|
stab(dll)
|
|
|
|
testhdf5(dll)
|
|
|
|
unlink(dll)
|
|
|
|
|
|
c:\MyHDFstuff\hdf5\tools\toolslib\debug
|
|
c:\MyHDFstuff\hdf5\tools\toolslib\release
|
|
|
|
toolslib.lib- the tools library
|
|
|
|
c:\MyHDFstuff\hdf5\tools\toolslibD\debug
|
|
c:\MyHDFstuff\hdf5\tools\toolslibD\release
|
|
|
|
toolslibD.lib- the dll export library
|
|
|
|
c:\MyHDFstuff\hdf5\tools\"tools directory"-
|
|
where non-hdf4 related tools directory is one of the
|
|
following:
|
|
|
|
h5dump(dll)
|
|
|
|
h5ls(dll)
|
|
|
|
h5debug(dll)
|
|
|
|
h5import(dll)
|
|
|
|
h5repart(dll)
|
|
|
|
gifconv(dll)
|
|
|
|
|
|
Test and tool directory contains debug and release
|
|
subdirectories with the corresponding tests and tools.
|
|
|
|
|
|
STEP 2: testing hdf5 libraries and non-hdf4 related tools
|
|
|
|
In a command prompt window run the test batch file which resides in
|
|
the hdf5\test directory(for example: C:\MyHDFstuff\hdf5\test)to make
|
|
sure that the library was built correctly.
|
|
|
|
You can possibily test four versions of hdf5 library and tools. They are:
|
|
|
|
release version
|
|
release dll version
|
|
debug version
|
|
debug dll version
|
|
|
|
NOTE: The hdf5ddll.dll and hdf5dll.dll should be placed into
|
|
the C:\WINNT\system or C:\WINDOWS\system directory before using the dlls.
|
|
|
|
We strongly suggest you to redirect your testing results into
|
|
an output file and you can easily check the testing results.
|
|
You may use either NotePad or NoteTab Light or whatever other
|
|
windows tools to check the results. For the purpose of printing,
|
|
please choose font less than 14 for better alignment of the text.
|
|
|
|
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 notetab light to check results. You should
|
|
not find any FAILED marks in your output files.
|
|
|
|
Note: big test is currently not working for windows, we are
|
|
still investigating this.
|
|
|
|
2. hdf5 tools testing
|
|
|
|
Currently we are only supporting h5dump test. We are
|
|
investigating h5ls test now.
|
|
|
|
1) h5dump test
|
|
|
|
cd back into hdf5 directory and then cd into tools
|
|
directory(...\hdf5\tools)
|
|
|
|
Go to a) b) c) or d) to test your chosen version
|
|
|
|
a) release static version
|
|
type:
|
|
dumptest release >"Your output filename"
|
|
|
|
b) release dll version
|
|
type:
|
|
dumptest release dll > "Your output filename"
|
|
|
|
c) debug static version
|
|
type:
|
|
dumptest debug >"Your output filename"
|
|
|
|
d) debug dll version
|
|
type:
|
|
dumptest debug dll >"Your output filename"
|
|
|
|
|
|
We are using "fc" command to compare whether dumper
|
|
generates correct results. Supposedly you should find
|
|
"FC: no differences encountered" in your output file.
|
|
However, since we are comparing the actual dumper output
|
|
with the expected dumper output under different directory,
|
|
you may see something like:
|
|
|
|
"
|
|
***** ..\TESTFILES\tall-1.ddl
|
|
#############################
|
|
Expected output for 'h5dump tall.h5'
|
|
#############################
|
|
HDF5 "tall.h5" {
|
|
GROUP "/" {
|
|
***** TALL-1.RESULTS
|
|
HDF5 "..\..\testfiles\tall.h5" {
|
|
GROUP "/" {
|
|
*****
|
|
"
|
|
|
|
The actual dumper output is correct. The difference showing
|
|
here is the different representations of filename of the same
|
|
file.
|
|
|
|
STEP 3: BUILDING THE 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".
|
|
|
|
On Windows platform select as the active configuration
|
|
|
|
"allexamples -- Win32 Debug" to build debug versions
|
|
of the examples.
|
|
|
|
or
|
|
|
|
"allexamples -- Win32 Release" to build release
|
|
versions the examples.
|
|
|
|
When the debug build or release build is done
|
|
there should be the following subdirectories in
|
|
C:\myHDFstuff\hdf5\examples\
|
|
|
|
attributetest
|
|
|
|
chunkread
|
|
|
|
compoundtest
|
|
|
|
extendwritetest
|
|
|
|
grouptest
|
|
|
|
readtest
|
|
|
|
selecttest
|
|
|
|
writetest
|
|
|
|
|
|
|
|
3. Run the batch file "InstallExamples.bat" which
|
|
resides in the top level directory(C:\MyHDFSTUFF\hdf5).
|
|
This file creates 2 new directories,examplesREL and
|
|
examplesDBG,in the 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. The examples should be tested in these 2
|
|
new directories due to some dependencies between the
|
|
examples. Especially writetest.exe and extendwritetest.exe
|
|
should be executed before chunkread.exe and readtest.exe
|
|
due to dependencies among these files.
|
|
|
|
Section III:
|
|
BUILDING AN APPLICATION USING THE HDF5 LIBRARY OR DLL- SOME HELPFUL
|
|
POINTERS
|
|
====================================================================
|
|
|
|
If you are building an application that uses the HDF5 library the
|
|
following locations will need to be specified for locating header files
|
|
and linking in the HDF libraries:
|
|
|
|
<top-level HDF5 directory>\src
|
|
|
|
where <top-level HDF5 directory> may be
|
|
|
|
C:\MyHDFstuff\hdf5\
|
|
|
|
To specify this location in the settings for your VC++ project:
|
|
|
|
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. Chose the build configuration you would like to modify in the
|
|
drop down menu labeled with 'Settings For:'
|
|
|
|
4. Chose the C/C++ tab
|
|
|
|
5. At the bottom of the window, there should be a text-area labeled
|
|
with 'Project Options:'. In this text-area, scroll until you
|
|
reach the end and type /I "<top-level HDF5 directory>\src" and
|
|
then click OK.
|
|
|
|
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.
|
|
|
|
|
|
To use the DLL:
|
|
|
|
1. Follow the steps for specifing 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 or hdf5ddll.lib for
|
|
debug version.
|
|
|
|
3. Place the DLL in a location that Windows will be able to locate
|
|
it. The search 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.
|
|
|
|
|
|
Section IV:
|
|
MORE 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:
|
|
|
|
The files in all.zip must end up in the hdf5\ directory installed by
|
|
hdf5-1_4_0.zip
|
|
|
|
If you must install all.dsw and all.dsp in another directory,
|
|
relative to hdf5\ , 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
|
|
PreProcessor
|
|
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 definations
|
|
|
|
|
|
|
|
|
|
Section V:
|
|
ZLIB LIBRARY- REMOVING OR CHANGING THE PATH
|
|
============================================
|
|
|
|
If you would like to remove the zlib library from the hdf5 library or
|
|
use your own version of the zlib library then follow the steps below.
|
|
|
|
Removing the zlib library completely:
|
|
|
|
Open the all.dsw workspace file in Microsoft Visual C++. Go to the
|
|
hdf5 project. Select the zlib.lib file from this project and
|
|
delete(press the 'delete' key) it. Next open the H5config.h and H5pubconf.h
|
|
files from the src directory. Remove the the following two lines:
|
|
|
|
#define H5_HAVE_LIBZ 1
|
|
#define H5_HAVE_COMPRESS2
|
|
|
|
then save the file.
|
|
|
|
Next go to the hdf5dll project. Remove the zlib.lib from this
|
|
project too. Open the project settings for the hdf5dll project.
|
|
Go to the C/C++ settings tab and under the preprocessor definitions
|
|
remove the ZLIB_DLL in both the debug and the release settings.
|
|
Recompile the all project and then save the workspace.
|
|
|
|
|
|
Replacing the zlib library:
|
|
|
|
Open the all.dsw workspace and go to the hdf5 project. Delete the
|
|
zlib.lib file from the file listing. Then select the hdf5 project
|
|
and richt click to get a menu. Pick the "add files to project..."
|
|
option and find the version of the zlib that you would like to use.
|
|
Then click OK in the file chooser dialog. Repeat the steps for the
|
|
hdf5dll project. You may also want to replace the zlib.h and zconf.h
|
|
files which are in the src directory with your own versions of these
|
|
files. Then recompile the all project.
|
|
|
|
Please send email to hdfhelp@ncsa.uiuc.edu for further assistance.
|
|
|