对于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(为什么一切都通过anaconda进行)。 另外,这意味着我的目录结构有点不合常规。
〜是nethome / myname,并且空间非常有限,所以我所有的工作都在/ localdata / myname上,这是通过〜/ local上的符号链接到达的
我还尝试将那些特定文件复制到我的Athena目录(〜/ local / athena,我从中运行athena Makefile),希望它能够找到它们并且我可以更好地诊断问题。那里也没有运气。
答案 0 :(得分:0)
能够通过使用cpp -v
测试编译器的搜索路径来解决此问题,该路径确定我的搜索路径不在寻找能够找到那些各种.h文件的位置。我使用
export CPATH='/nethome/myname/local/anaconda2/include:/nethome/myname/local/anaconda2/lib'
我敢肯定,有更好的方法可以做到这一点(因为我已经看到过在各种谷歌搜索中不要使用CPATH的警告),但是如果您遇到这个问题,至少它是我发现对我有用的方法