Can';找不到Athena+所需的现有文件(hdf5、h、mpi.h、fftw3.h、libGLU.so.1)+;参观

Can';找不到Athena+所需的现有文件(hdf5、h、mpi.h、fftw3.h、libGLU.so.1)+;参观,mpi,hdf5,openmpi,Mpi,Hdf5,Openmpi,我对Linux比较陌生,正在尝试使用一个程序(Athena++-,一个磁流体动力学代码)进行研究 我遵循了教程,可以运行更简单的模拟,但是对于任何需要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

我对Linux比较陌生,正在尝试使用一个程序(Athena++-,一个磁流体动力学代码)进行研究

我遵循了教程,可以运行更简单的模拟,但是对于任何需要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
我已经尝试在.bash_配置文件(我在RHEL7上)中更新我的路径以包含这些路径,但没有效果-仍然是相同的错误。我也尝试过使用export
CPATH='~/local/anaconda2/include'
,但这没有帮助

请注意,我在一台大学机器上工作,这意味着我不能使用sudo(为什么一切都是通过anaconda)。 而且,这意味着我的目录结构有点非正统

~是nethome/myname,空间非常有限,所以我所有的工作都在/localdata/myname,可以通过符号链接~/local访问


我还尝试将这些特定文件复制到我的Athena目录(~/local/Athena,我运行我的Athena Makefile的源目录),希望它能够找到它们,我可以更好地诊断问题。也没有运气。

能够通过使用
cpp-v
测试编译器搜索路径来解决这个问题,这确定了我的搜索路径没有找到那些不同的.h文件。我使用

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

我确信有更好的方法可以做到这一点(因为我在各种谷歌搜索中看到了使用CPATH的警告),但如果你碰巧遇到了这个问题,至少这是我发现对我有效的方法。

我用
cpp-v
测试了搜索路径,发现我所有的搜索路径都在
usr
中,因此添加了(使用CPATH,不知道我对此有何感想)
nethome/myname/local/anaconda2/include
克服了大部分错误。我似乎仍然有一个库错误,因为它找不到-lhdf5
$ 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
export CPATH='/nethome/myname/local/anaconda2/include:/nethome/myname/local/anaconda2/lib'