Hello -

I am unable to compile on Ubuntu using the supplied HDF5 library. The
headers seem to insist on using version 1.6.

For example, the file:

{{{
#if defined( H5_USE_16_API )
    @@@@
#endif
#include <hdf5.h>
#if defined( H5_USE_16_API )
    @@@@
#endif

void DatagroupOpenOrCreate( hid_t parentID, const char * const groupPath ) {
    hid_t groupID = H5Gcreate( parentID, groupPath, H5P_DEFAULT,
H5P_DEFAULT, H5P_DEFAULT );
}
}}}

Results in the following errors:

{{{
g++ -Wall -fexceptions  -g   -c Datagroup.cpp -o Datagroup.o
Datagroup.cpp:6: error: stray ‘@’ in program
Datagroup.cpp:6: error: stray ‘@’ in program
Datagroup.cpp:6: error: stray ‘@’ in program
Datagroup.cpp:6: error: stray ‘@’ in program
/usr/include/H5Gpublic.h: In function ‘hid_t DatagroupOpenOrCreate(hid_t,
const char*)’:
/usr/include/H5Gpublic.h:147: error: too many arguments to function ‘hid_t
H5Gcreate1(hid_t, const char*, size_t)’
Datagroup.cpp:10: error: at this point in file
}}}

I need to call H5Gcreate2, not H5Gcreate1. The macro H5_USE_16_API is
defined by including "hdf5.h", which is unexpected.

This is Ubuntu Linux libhdf5-serial-dev version 1.8.4-5.

Is there something I can do to explicitly get the 1.8 macro mappings? I'm
using a preexisting codebase and don't want to substitute H5Gcreate2() and
like functions everywhere.

Thanks.
_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org

Reply via email to