【发布时间】:2019-10-24 14:36:56
【问题描述】:
对于 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 和(尝试使用访问时)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 上)以包含这些路径,但无济于事 - 仍然是同样的错误。我也尝试使用 export CPATH='~/local/anaconda2/include' 但这没有帮助。
请注意,我正在使用大学机器,这意味着我不能使用 sudo(为什么一切都通过 anaconda)。 还有就是说我的目录结构有点不正统。
~ 是 nethome/myname 并且空间非常有限,所以我所有的工作都在 /localdata/myname 中,通过 ~/local 的符号链接可以访问
我还尝试将这些特定文件复制到我的 Athena 目录(~/local/athena,我从中运行我的 athena Makefile),希望它能够找到它们并且我可以更好地诊断问题。那里也没有运气。
【问题讨论】:
-
我用
cpp -v测试了搜索路径,发现我所有的搜索路径都在usr中,所以添加了(使用CPATH,不知道我对此感觉如何)nethome/myname/local/anaconda2/include克服了大多数这些错误。我似乎仍然有一个库错误,因为它找不到 -lhdf5