HDF5 build for VS2013_64 + fortran (Intel) on WIN7


#1

Hi! I’m trying to build HDF5 for my Fortran projects.
Following standard cmake instructions I’m able to build HDF5 for C++ only. Enabling fortran support results in failed build (Fortan compiler is Intel® Visual Fortran Compiler 17.0.4.210) . Sorry, can’t upload log file since I’m a new user.

The main source of errors seem to be that it cannot find parameters HADDR_T, C_INT8_T, HID_T

35>D:\distributives\HDF5\CMake-hdf5-1.12.0\hdf5-1.12.0\fortran\src/H5f90global.F90(67): error #6683: A kind type parameter must be a compile-time constant. [HADDR_T]

35>D:\distributives\HDF5\CMake-hdf5-1.12.0\hdf5-1.12.0\fortran\src/H5f90global.F90(75): error #6683: A kind type parameter must be a compile-time constant. [C_INT8_T]

35>D:\distributives\HDF5\CMake-hdf5-1.12.0\hdf5-1.12.0\fortran\src/H5f90global.F90(87): error #6683: A kind type parameter must be a compile-time constant. [HID_T]

Any ideas how to fix it?


#2

Can you try 1.12.1? There were some config time changes that may affect this.

Allen


#3

Allen, thank you for reply!

I tested 1.12.1 in the same way as 1.12.0 and I found that in the case 1.12.1 even C++ version can’t be build for VS2013 generator. All these tests I did under clean Win7x64 setups in separate virtual machines (Virtual Box). I tested it with Intel fortan compilers 2017 and 2019. It seems that something is broken in internal build configurations of these new versions of HDF5. Also I noticed, that binary executables offered officially at hdfgroup.org don’t include versions for VS2013. Only VS2010, 2015, 2017, 2019 are available. May be it is not coincidence and I was lucky to fall into that bad config case.

Now I’m switching to testing builds under VS2015.

Petr


#4

We have moved our minimum supported version of VS to 2015. We try not to break older versions, but limited resources prevent us from supporting older versions.

Allen


#5

Thank you, Allen, it was very instructive!


#6

FWIW, we don’t support Visual Studio versions before 2015 due to poor C99 support.