1

I have been trying to install the HDF5 API in Windows using MinGW and Cygwin. I have given up on MinGW (after failing to compile HDF5-1.8.11 on it) because I need to use HDF5 on Fortran.

Using Cygwin with HDF5-1.8.11 produces errors when running the configure (bash) script and therefore it does not even start to compile. I read on this link that the HDF5-1.8 compiles on Cygwin including the Fortran module. I downloaded an older version (HDF5-1.8.0) and the configure works fine, but the compile (2nd make) gives the following error:

Making all in src
make[1]: Entering directory `/cygdrive/c/hdf5-1.8.0/src'
make  all-am
make[2]: Entering directory `/cygdrive/c/hdf5-1.8.0/src'
/bin/sh ../libtool --tag=CC    --mode=compile gcc -DHAVE_CONFIG_H -I.    -I/cygdrive/c/cygwin/usr/include    -DNDEBUG -UH5_DEBUG_API  -ansi -pedantic -Wall -W -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs -Winline -O3 -fomit-frame-pointer -finline-functions -MT H5Omtime.lo -MD -MP -MF .deps/H5Omtime.Tpo -c -o H5Omtime.lo H5Omtime.c
gcc -DHAVE_CONFIG_H -I. -I/cygdrive/c/cygwin/usr/include -DNDEBUG -UH5_DEBUG_API -ansi -pedantic -Wall -W -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs -Winline -O3 -fomit-frame-pointer -finline-functions -MT H5Omtime.lo -MD -MP -MF .deps/H5Omtime.Tpo -c H5Omtime.c -o H5Omtime.o
In file included from H5private.h:29:0,
             from H5Omtime.c:24:
H5public.h:154:18: warning: ISO C90 does not support ‘long long’ [-Wlong-long]
H5public.h:155:16: warning: ISO C90 does not support ‘long long’ [-Wlong-long]
H5Omtime.c: In function ‘H5O_mtime_decode’:
H5Omtime.c:194:9: warning: implicit declaration of function ‘tzset’ [-Wimplicit-function-declaration]
H5Omtime.c:194:9: warning: nested extern declaration of ‘tzset’ [-Wnested-externs]
H5Omtime.c:230:17: error: ‘timezone’ undeclared (first use in this function)
H5Omtime.c:230:17: note: each undeclared identifier is reported only once for each function it appears in
Makefile:813: recipe for target `H5Omtime.lo' failed
make[2]: *** [H5Omtime.lo] Error 1
make[2]: Leaving directory `/cygdrive/c/hdf5-1.8.0/src'
Makefile:488: recipe for target `all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory `/cygdrive/c/hdf5-1.8.0/src'
Makefile:410: recipe for target `all-recursive' failed
make: *** [all-recursive] Error 1

I would appreciate any help on this! Thanks!

2
  • seems time.h might not be found. Check this post: stackoverflow.com/questions/12749529/… Commented Sep 12, 2013 at 10:11
  • Actually the configure script reports finding both time.h and sys/time.h Commented Sep 15, 2013 at 14:28

1 Answer 1

0

I was able to reproduce this error. It seems that the configure script sets a number of #define flags which indicate the presence of the timezone global variable, which in reality is not present within the cygwin environment and is thus reported missing in the error message. By removing the #define H5_HAVE_TIMEZONE from the header file H5pubconf.h I was able to get rid of this error.

Unfortunately, then still another error occurs during the make process, which can also be avoided by removing the #define H5_HAVE_GETPWUID from the same header file H5pubconf.h.

Although this does not explain what really went wrong during configure, with these two modifications I am able to successfully compile the library.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.