Я пытаюсь собрать библиотеки Фортрана HDF5 для VS 2017 (сообщество, версия 15.9.11) с CMake (версия 3.15.5). Для этого я скачал необходимые файлы и следовал инструкциям на этом сайте: https://portal.hdfgroup.org/display/support/Building+HDF5+with+CMake
Файл CMake-hdf5-1.10.5.tar.gz содержит скрипт CTest, который должен автоматически создавать библиотеки,Единственное, что я изменил по сравнению с параметрами по умолчанию в файле «HDF5options», это то, что я установил Build_Fortran Bool на on, так как по умолчанию не будет собирать библиотеки для Fortran.
Затем я запустил скрипт с командой
ctest -S HDF5config.cmake,BUILD_GENERATOR=VS201764 -C Release -V -O hdf5.log
Здание было выполнено, но не все работало. Похоже, что большинство вещей, связанных с Фортраном, не были собраны правильно и не прошли автоматическое тестированиеТакже мне не удалось ничего скомпилировать в автоматически созданных VS Projects в сборке.
Все неудачные тесты можно увидеть здесь: http://txt.do/1k82z
И я загрузил весь журнал сборкиВот. http://s000.tinyupload.com/?file_id=50578175097329210274
Я не знаю, что я сделал не так. Моя цель - записывать файлы HDF5 с помощью Fortran с помощью моего аппаратного и программного обеспечения, поэтому, если кто-то может предложить совершенно другое решение для достижения этого, это также решит мою проблему.
Редактировать: я пытался использовать cmake-gui, как было предложенов ссылке, предоставленной добрым комментатором, и после установки исходного пути и пути сборки я позволил ему настроить, затем поставил галочку на HDF5_BUILD_FORTRAN и оставил все остальное, как было, и позволил снова настроить. Появились следующие ошибки:
SOVERSION: 103.1.0
SOVERSION_TOOLS: 100.1.2
SOVERSION_CXX: 103.1.0
SOVERSION_F: 102.0.0
SOVERSION_HL: 100.1.2
SOVERSION_HL_CXX: 100.1.3
SOVERSION_HL_F: 100.0.4
SOVERSION_JAVA: 100.4.0
Checking for InitOnceExecuteOnce:
Warnings Configuration:
Could NOT find Perl (missing: PERL_EXECUTABLE)
Cannot generate headers - perl not found
CMake Warning (dev) at CMakeLists.txt:746 (set):
implicitly converting 'INTEGER' to 'STRING' type.
This warning is for project developers. Use -Wno-dev to suppress it.
The Fortran compiler identification is Intel 19.0.0.20181018
Check for working Fortran compiler: C:/Program Files (x86)/IntelSWTools/compilers_and_libraries_2019/windows/bin/intel64/ifort.exe
Check for working Fortran compiler: C:/Program Files (x86)/IntelSWTools/compilers_and_libraries_2019/windows/bin/intel64/ifort.exe -- works
Detecting Fortran compiler ABI info
Detecting Fortran compiler ABI info - done
Determine Intel Fortran Compiler Implicit Link Path
Determine Intel Fortran Compiler Implicit Link Path -- done
Checking whether C:/Program Files (x86)/IntelSWTools/compilers_and_libraries_2019/windows/bin/intel64/ifort.exe supports Fortran 90
Checking whether C:/Program Files (x86)/IntelSWTools/compilers_and_libraries_2019/windows/bin/intel64/ifort.exe supports Fortran 90 -- yes
Detecting Fortran/C Interface
Detecting Fortran/C Interface - Found GLOBAL and MODULE mangling
Testing Fortran sizeof
Testing Fortran sizeof - OK
Testing Fortran c_sizeof
Testing Fortran c_sizeof - OK
Testing Fortran storage_size
Testing Fortran storage_size - OK
Testing Fortran ISO_FORTRAN_ENV
Testing Fortran ISO_FORTRAN_ENV - OK
Testing Fortran RealIsNotDouble
Testing Fortran RealIsNotDouble - OK
Testing Fortran iso_c_binding
Testing Fortran iso_c_binding - OK
CMake Warning (dev) at config/cmake_ext_mod/HDFUseFortran.cmake:195 (set):
implicitly converting 'flags' to 'STRING' type.
Call Stack (most recent call first):
CMakeLists.txt:826 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) at config/cmake_ext_mod/HDFUseFortran.cmake:196 (set):
implicitly converting 'flags' to 'STRING' type.
Call Stack (most recent call first):
CMakeLists.txt:826 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
Fortran compiler ID is Intel
Testing Fortran c_long_double
Testing Fortran c_long_double - OK
Testing Fortran c_long_double
Testing Fortran c_long_double - Fail
Detecting Fortran REAL and INTEGER KINDs
Testing Fortran REAL and INTEGER KINDs - Fail
CMake Error at config/cmake/HDF5UseFortran.cmake:124 (file):
file failed to open for reading (No such file or directory):
C:/ProgramData/HDF5Libs/pac_fconftest.out
Call Stack (most recent call first):
CMakeLists.txt:835 (include)
CMake Error at config/cmake/HDF5UseFortran.cmake:128 (list):
list GET given empty list
Call Stack (most recent call first):
CMakeLists.txt:835 (include)
CMake Error at config/cmake/HDF5UseFortran.cmake:129 (list):
list GET given empty list
Call Stack (most recent call first):
CMakeLists.txt:835 (include)
CMake Error at config/cmake/HDF5UseFortran.cmake:130 (list):
list GET given empty list
Call Stack (most recent call first):
CMakeLists.txt:835 (include)
CMake Error at config/cmake/HDF5UseFortran.cmake:134 (message):
Failed to find available INTEGER KINDs for Fortran
Call Stack (most recent call first):
CMakeLists.txt:835 (include)
Configuring incomplete, errors occurred!
See also "C:/ProgramData/HDF5Libs/CMakeFiles/CMakeOutput.log".
See also "C:/ProgramData/HDF5Libs/CMakeFiles/CMakeError.log".