Я использую find_package(HDF5 COMPONENTS CXX REQUIRED)
в своем сценарии CMAKE для загрузки каталогов и библиотек include. Cmake говорит мнеCmake находит hdf5, но пытается связать с dll на окнах
Found HDF5: C:/Program Files/HDF_Group/HDF5/1.10.0/bin/hdf5_cpp.dll (found version "1.10.0") found components: CXX
И создает мое visual studio
решение. Я также использовать библиотеку, сохраненную в ${HDF5_LIBRARIES} ${HDF5_CXX_LIBRARIES}
для моей цели, но когда я строю, я получаю ошибку компоновщика LNK1107
сказать, что для файла hdf5_cpp.dll
:
invalid or corrupt file: cannot read at 0x380
, который я думаю, что это связано с тем, что visual studio
пытается напрямую связать с файлом dll
вместо против lib
файла, который находится в другой папке, а именно в:
C:\Program Files\HDF_Group\HDF5\1.10.0\lib
Вопрос: является ли это ошибка в FindHDF или я настроить что-то не так?
Хм, это не очень хороший вариант, так как это CMake сценарий предполагается для работы на разных платформах, и я хотел бы избежать написания большого количества случаев с конкретными материалами на платформе. Интересно, почему это не исправлено, если это известная ошибка. – NOhs
Вот проблема, для тех, кто хочет следовать ей и посмотреть, если она когда-нибудь будет решена: https://gitlab.kitware.com/cmake/cmake/issues/16534 – NOhs
И для ручной спецификации путей нужно вероятно, использовать кавычки из-за пробелов на дорожках. – NOhs