Не удается найти файлы, которые существуют (hdf5, h, mpi.h, fftw3.h, libGLU.so.1) - необходимые для Athena ++ и Visit - PullRequest
0 голосов
/ 24 октября 2019

Относительно новый для Linux и пытается работать с программой (Athena ++ - https://github.com/PrincetonUniversity/athena-public-version/wiki -, код магнитной гидродинамики) для моих исследований.

Я следовал этому уроку и могу запускать более простые симуляции, но для всего, что требует mpi или hdf5, я сталкиваюсь с проблемой, в которой говорится о фатальной ошибке: hdf5.h: Нет такого файла или каталога

[sferrel6@phys44222 athena]$ make
g++  -O3 -std=c++11 -c src/main.cpp -o obj/main.o
In file included from src/main.cpp:43:0:
src/outputs/outputs.hpp:22:18: fatal error: hdf5.h: No such file or directory
 #include <hdf5.h>
                  ^
compilation terminated.
make: *** [obj/main.o] Error 1

Аналогичным образом я получаю ту же проблему для mpi.h, fftw3.h и (при попытке использовать Visit) libGlu.so.1

Эти файлы, безусловно, существуют, хотя я могуне могу понять, как заставить мою программу их видеть.

$ find -iname "hdf5.h"
~/local/anaconda2/pkgs/hdf5-1.10.4-nompi_h3c11f04_1106/include/hdf5.h
~/local/anaconda2/pkgs/hdf5-1.10.4-hb1b8bf9_0/include/hdf5.h
~/local/anaconda2/include/hdf5.h
$ find -iname "mpi.h"
~/local/anaconda2/pkgs/openmpi-4.0.1-hc99cbb1_2/include/mpi.h
~/local/anaconda2/include/mpi.h
find -iname "libGLU.so.1"
~/local/anaconda2/lib/libGLU.so.1
~/local/anaconda2/pkgs/libglu-9.0.0-hf484d3e_1/lib/libGLU.so.1

Я пытался обновить мой путь в .bash_profile (я на RHEL7), чтобы включить эти пути,но безрезультатно - все та же ошибка. Я также пытался использовать экспорт CPATH='~/local/anaconda2/include', но это не помогло.

Обратите внимание, что я работаю на университетской машине, что означает, что я не могу использовать sudo (почему все происходит через анаконду). Кроме того, это означает, что моя структура каталогов немного неортодоксальна.

~ - nethome / myname и имеет очень ограниченное пространство, поэтому вся моя работа находится в / localdata / myname, которая достигается через символическую ссылку в ~ / local

Я также пытался скопировать эти конкретные файлы в мой каталог Athena (~ / local / athena, откуда я запускаю свой make-файл athena) в надежде, что он сможет найти их, и я смогулучше диагностировать проблему. Там тоже не повезло.

1 Ответ

0 голосов
/ 31 октября 2019

Я смог решить эту проблему, протестировав путь поиска компилятора с помощью cpp -v, который определил, что мои пути поиска не искали, где я смог найти эти различные .h файлы. Я обновил это, используя

export CPATH='/nethome/myname/local/anaconda2/include:/nethome/myname/local/anaconda2/lib'

Я уверен, что есть лучший способ сделать это (так как я видел предостережения против использования CPATH в моем различном поиске), но если вы столкнетесь с этим вопросом, этопо крайней мере, метод, который я нашел, чтобы работать для меня.

...