Прежде всего, я прочитал похожий вопрос StackOverflow здесь , но это не решило мою проблему.
Я хотел бы использовать файлы HDF5 в своих проектах на Fortran-2008, поэтому мне нужно получить файлы статических и динамических библиотек HDF5 для их использования.
Что я уже сделал:
Я скачал и установил HDF5 Windows 10 x64 VS15двоичный файл с официального веб-сайта HDF5 ( здесь ).
Я протестировал его, выполнив эту команду в консоли Windows: h5dump.exe
. Работает хорошо!
- Итак, я скопировал один базовый пример Фортрана HDF5 и вставил его в новый проект Visual Studio Fortran. Пример исходного кода на Fortran ( здесь )
- Затем в поле
Project Properties | Fortran | General | Additional Include Directories
введите путь к расположению hdf5.mod
C:\Program Files\HDF_Group\HDF5\1.10.5\include\static
Для ссылки, под
Project | Properties | Linker | General | Additional Library Directories
введите путь к расположению
.lib
файлов.
C:\Program Files\HDF_Group\HDF5\1.10.5\lib
Затем, под
Project | Properties | Linker | Input | Additional Dependencies
вставьте
ТОЛЬКО hdf5_fortran.lib
Я сделал все эти конфигурации для All Configurations
и All Platforms
. Моя активная среда VS - Debug - x64.
Проблема
Я щелкнул правой кнопкой мыши в имени решения Fortran и "Build", но я получил следующие ошибки компоновщика:
unresolved external symbol H5GLOBAL_mp_H5T_NATIVE_INTEGER
unresolved external symbol H5GLOBAL_mp_H5FD_MEM_NTYPES_F
unresolved external symbol H5GLOBAL_mp_H5F_ACC_TRUNC_F
a) Что мне теперь нужно сделать, чтобы решить эту проблему?
b) Имя двоичного установщика HDF5 (hdf5-1.10.5-Std-win10_64-vs15.zip
) содержит vs15
внутриимя файлаЯ не знаю, но я думаю, что это означает «Visual Studio 2015». Есть ли проблемы с использованием этих библиотек C и Fortran HDF5 внутри Visual Studio 2019 x64 ?
Моя система:
- Windows 10 x64
- Visual Studio 2019 Enterprise
- Intel Visual Fortran 2019
Пример Fortran Исходный код:
! This example is used in the HDF5 Tutorial.
PROGRAM H5_CRTDAT
USE HDF5 ! This module contains all necessary modules
IMPLICIT NONE
CHARACTER(LEN=8), PARAMETER :: filename = "dsetf.h5" ! File name
CHARACTER(LEN=4), PARAMETER :: dsetname = "dset" ! Dataset name
INTEGER(HID_T) :: file_id ! File identifier
INTEGER(HID_T) :: dset_id ! Dataset identifier
INTEGER(HID_T) :: dspace_id ! Dataspace identifier
INTEGER(HSIZE_T), DIMENSION(2) :: dims = (/4,6/) ! Dataset dimensions
INTEGER :: rank = 2 ! Dataset rank
INTEGER :: error ! Error flag
!
! Initialize FORTRAN interface.
!
CALL h5open_f(error)
!
! Create a new file using default properties.
!
CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, error)
!
! Create the dataspace.
!
CALL h5screate_simple_f(rank, dims, dspace_id, error)
!
! Create the dataset with default properties.
!
CALL h5dcreate_f(file_id, dsetname, H5T_NATIVE_INTEGER, dspace_id, &
dset_id, error)
!
! End access to the dataset and release resources used by it.
!
CALL h5dclose_f(dset_id, error)
!
! Terminate access to the data space.
!
CALL h5sclose_f(dspace_id, error)
!
! Close the file.
!
CALL h5fclose_f(file_id, error)
!
! Close FORTRAN interface.
!
CALL h5close_f(error)
END PROGRAM H5_CRTDAT