Hi, I have been trying to give support to HDF5 on Windows for dynamically loading the Blosc plugin (https://github.com/Blosc/hdf5-blosc), but no success so far.
I basically have compiled the plugin with: > cl /I"C:\Program Files (x86)\blosc\include" /I"C:\HDF_Group\HDF5\1.8.12\include" libH5Zblosc.c blosc_filter.c /OUT:libH5Zblosc.dll /LD /link /LIBPATH:"C:\Program Files (x86)\blosc\lib" /LIBPATH:"C:\HDF_Group\HDF5\1.8.12\lib" blosc.lib hdf5.lib and then copied the libH5Zblosc.dll to "%ALLUSERSPROFILE%/hdf5/lib/plugin", but when I try to use a h5dump for getting the data of an HDF5 with some datasets compressed with Blosc, I am getting: >h5dump \tmp\carray1-blosc.h5 HDF5 "\tmp\carray1-blosc.h5" { GROUP "/" { DATASET "carray" { DATATYPE H5T_STD_U8LE DATASPACE SIMPLE { ( 200, 300 ) / ( 218, 300 ) } DATA {h5dump error: unable to print data } } } } When asking for more errors, I am getting a more informative message: >h5dump --enable-error-stack \tmp\carray1-blosc.h5 HDF5 "\tmp\carray1-blosc.h5" { GROUP "/" { DATASET "carray" { DATATYPE H5T_STD_U8LE DATASPACE SIMPLE { ( 200, 300 ) / ( 218, 300 ) } DATA {HDF5-DIAG: Error detected in HDF5 (1.10.1) thread 0: #000: C:\autotest\hdf5110-StdRelease-code-10vs14\build\hdfsrc\src\H5Dio.c line 171 in H5Dread(): can't read data major: Dataset minor: Read failed #001: C:\autotest\hdf5110-StdRelease-code-10vs14\build\hdfsrc\src\H5Dio.c line 544 in H5D__read(): can't read data major: Dataset minor: Read failed #002: C:\autotest\hdf5110-StdRelease-code-10vs14\build\hdfsrc\src\H5Dchunk.c line 2050 in H5D__chunk_read(): unable to read raw data chunk major: Low-level I/O minor: Read failed #003: C:\autotest\hdf5110-StdRelease-code-10vs14\build\hdfsrc\src\H5Dchunk.c line 3405 in H5D__chunk_lock(): data pipeline read failed major: Data filters minor: Filter operation failed #004: C:\autotest\hdf5110-StdRelease-code-10vs14\build\hdfsrc\src\H5Z.c line 1349 in H5Z_pipeline(): required filter 'blosc' is not registered major: Data filters minor: Read failed #005: C:\autotest\hdf5110-StdRelease-code-10vs14\build\hdfsrc\src\H5PL.c line 389 in H5PL_load(): search in paths failed major: Plugin for dynamically loaded library minor: Can't get value #006: C:\autotest\hdf5110-StdRelease-code-10vs14\build\hdfsrc\src\H5PL.c line 812 in H5PL__find(): can't open directory major: Plugin for dynamically loaded library minor: Can't open directory or file h5dump error: unable to print data } } } } H5tools-DIAG: Error detected in HDF5:tools (1.10.1) thread 0: #000: C:\autotest\hdf5110-StdRelease-code-10vs14\build\hdfsrc\tools\lib\h5tools_dump.c line 1639 in h5tools_dump_simple_dset(): H5Dread failed major: Failure in tools library minor: error in function I suppose the meaningful part is here: 10vs14\build\hdfsrc\src\H5PL.c line 812 in H5PL__find(): can't open directory b ut I have no clues on 1) what directory the dynamic plugin machinery in HDF5 is looking at and 2) which name the DLL should have (as per manual, I am using libH5Zblosc.dll, but I have tried with H5Zblosc.dll and blosc.dll with no success). I have also tried to use the HDF5_PLUGIN_PATH environment variable, so as to direct the plugin machinery in HDF5 to look into the specific %ALLUSERSPROFILE%/hdf5/lib/plugin place, but no luck. I tried with HDF5 1.8.12 and 1.10.1, with same results. Finally, if it is of any help, I am using Windows 10 64 bit. As a suggestion, it may help to debug situations like this if the HDF5 backtrace of the plugin machinery would provide info about 1) which directory it is looking at for finding the HDF5 plugin and 2) the name of the DLL that it is trying to load. Thanks in advance, -- Francesc Alted
_______________________________________________ Hdf-forum is for HDF software users discussion. Hdf-forum@lists.hdfgroup.org http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org Twitter: https://twitter.com/hdf5