2013-11-18 3 views

ответ

4

Я построю из исходного кода, доступные встроенные двоичные файлы используют компилятор MS C/C++, пока я хочу построить с компилятором Intel, и они построены с помощью Intel Fortran v12.x, пока я использую v14.x. Я не буду говорить, что вы не можете использовать двоичные файлы, но в прошлом у меня было достаточно борьбы, чтобы убедить меня построить свою собственную.

У меня также были проблемы с попыткой построить их непосредственно из VS и теперь использовать CMake. Ваш первый шаг должен состоять в том, чтобы установить CMake и выяснить, как его использовать. Вам не нужно много знаний об инструменте, и усилия будут погашены несколько раз. Например, вы можете использовать CMake для создания Szip и Zlib, если хотите. Все большее количество такого программного обеспечения доступно с поддержкой CMake, поэтому вы не обязательно будете использовать его только для HDF5. Например, я использую CMake для создания VTK для Windows.

Как только вы это сделали и сгенерировали файлы решений/проектов с помощью CMake, вы можете загрузить решение в VS и построить ALL_BUILD. Это обычно работает гладко, хотя я обнаружил, что некоторые проекты должны корректировать свои связи, а иногда я получаю ложные флаги в командных строках, отправленных компиляторам. Затем, запустив VS в режиме администратора, вы можете построить псевдо-цель INSTALL.

Я вижу, что теперь доступен HDF5 1.8.12, я буду загружать и строить его, сообщая вам, как я нахожусь.

Компиляция и компоновка

Если вы просто хотите использовать hdf5 включают линию

USE, NON_INTRINSIC :: hdf5 

в соответствующем месте в исходном файле (ы). Затем под Project Properties | Fortran | General | Additional Include Directories введите путь к адресу hdf5.mod. Это должно заставить вас скомпилировать.

Для ссылки, под Project | Properties | Linker | General | Additional Library Directories введите путь к файлу .lib. Затем под Project | Properties | Linker | Input | Additional Dependencies вставьте hdf5_fortran.lib.

Затем вы можете скомпилировать и связать свою программу. Если вы хотите использовать дополнительные средства, такие как интерфейс таблицы HDF5, то use h5tb и выяснить связи.

И обратитесь к документации. Смотрите, например, ../HDF5-1.8.12/release_docs/USING_HDF5_VS.txt

+0

Спасибо. Теперь я сделал то, что, по вашему мнению, предложил, и теперь у вас есть файл: bin \ release \ libhdf5.lib (но ходячий ходячий элемент утверждает, что он не является 32-битным или 64-битным оконным модулем). Правильно ли это звучит и как его использовать? –

+0

Не совсем. Вы должны, по крайней мере, иметь также 'hdf5_fortran.lib' и в файловой системе' hdf5.mod', чтобы вы могли использовать hdf5 в своих исходных файлах. Вы связываете файлы .lib (ы) в обычном порядке VS. –

+0

Итак, теперь C: \ hdf5stuff \ build \ bin \ Release содержит hdf5.lib, hdf5.dll, hdf5_fortran.lib, hdf5_fortran.dll и т. Д. И C: \ hdf5stuff \ build \ bin \ fortran \ Release содержит hdf5.mod и т. Д. но связь идет не так. Какие файлы и папки следует связывать где? –

2

мне удалось благодаря высокой Марке Performance: Вот то, что я сделал (не уверен, что все это необходимо):

  • Скачать и установить CMake
  • Скачать и установить hdf5 [Windows (32-разрядная версия), компиляторы: CMake VS 2010 C, C++, IVF 12, RWDI]
  • Установить переменную окружения: HDF5_DIR = C:/Program Files/HDF_Group/HDF5/1.8.х/CMake/hdf5
  • Скачать источник HDF5
  • сделать пустую папку построить
  • Run CMake (CMake-GUI) из меню Пуск
  • источник Set (источник HDF5) и назначения (пустая папка сборки)
  • Настройка
  • Установить генератор для Visual Studio 10
  • Укажите родные компиляторы [C: "" C++ ":", Fortran: "< ..> \ ifort.exe"]
  • Проверил: BUILD_SHARED_LIBS и HDF5_ BUILD_FORTRAN
  • Настройка
  • Настройка
  • Сформировать
  • Открыть < ..> \ построить \ HDF5.sln в Visual Studio 2010
  • сборки проекта ALL_BUILD

И наконец

  • Создать новый проект с примером Fortran
  • Linked сгенерированного ЛИЭС точно так, как High Performance Mark описывает

Я надеюсь, что некоторые еще можно использовать рецепт будет.

Еще раз спасибо

Смежные вопросы