2013-09-01 4 views
0

Я попытался построить первый пример here и получил ошибки. Прямо на первой линии есть недостающее включать заявление, но мне удалось выяснить, что должно бытьПример HDF5 не работает

#include "hdf5.h" 

Но даже после фиксации, что я получил больше ошибок:

$ h5cc ./example1.c 
./example1.c: In function ‘main’: 
./example1.c:66:4: error: too few arguments to function ‘H5Dcreate2’ 
In file included from /usr/include/hdf5.h:27:0, 
       from ./example1.c:6: 
/usr/include/H5Dpublic.h:104:14: note: declared here 

Любая идея, как решить эту проблему ?

+0

Пожалуйста, покажите свой код и пометьте его с помощью @LeventeKurusa, когда вы закончите. –

ответ

3

Пример кода был написан для выпуска 1.6 от hdf5, и поэтому он просто не будет компилироваться по версии 1.8 без изменений.

Если вы хотите, чтобы получить код для работы на 1.8, Вам необходимо включить 1.6 совместимость, что означает прохождение в флаге:

-DH5_USE_16_API 

в командной строке h5cc как:

h5cc -DH5_USE_16_API ./example1.c 

, и он должен правильно компилироваться; в противном случае вам придется переписать код, чтобы использовать API 1.8.

+0

В качестве альтернативы вы можете использовать флаг '-DH5Dcreate_vers = 1' (может иметь смысл, если у вас есть смесь старых и новых hdf5-функций). – Alf