'无法找到hdf5库'安装netCDF4时

时间:2014-06-01 09:52:00

标签: shared-libraries hdf5 netcdf

我正在尝试从MacOSX上的源代码构建NetCDF4。当我运行./configure时出现错误:

checking for library containing H5Fflush... no
configure: error: Can't find or link to the hdf5 library. Use --disable-netcdf-4, or     see config.log for errors.

我之前安装了hdf5,并将环境变量设置为:

LDFLAGS=-L/opt/local/lib
CPPFLAGS=-I/opt/local/include

在/ opt / local / lib中我有这些文件:

libhdf5.8.dylib             
libhdf5.a               
libhdf5.dylib               
libhdf5.settings            
libhdf5_cpp.8.dylib         
libhdf5_cpp.a               
libhdf5_cpp.dylib           
libhdf5_hl.8.dylib          
libhdf5_hl.a                
libhdf5_hl.dylib            
libhdf5_hl_cpp.8.dylib          
libhdf5_hl_cpp.a            
libhdf5_hl_cpp.dylib

在/ opt / local / include中我有:

hdf5.h      hdf5_hl.h

为什么配置脚本找不到hdf5库?如果需要,我很乐意提供更多信息!

编辑: 我的最终目标是安装netcdf4以用作Fortran模块。我已经尝试通过MacPorts安装所有东西,它似乎工作,但当我尝试使用它时,编译器告诉我没有netcdf.mod文件,并且确定没有任何地方可以找到它。 事实证明只需输入:

sudo port install netcdf-fortran

只安装库文件,但是没有创建.mod文件,我想这是必需的。所以我发现其他人有同样的问题,给出的建议是用gcc44安装它,它创建了一个.mod文件,但后来我的编译器告诉我.mod文件是用不同版本的gfortran构建的并且它无法使用,所以我试图从头开始构建它,但如果某人有更快的选择,我会非常乐意尝试它!

3 个答案:

答案 0 :(得分:2)

好的,我终于明白了。 我用macport重新安装netcdf-fortran,然后突然出现了.mod文件,然后我遇到了问题,然而,当运行gfortran时,它会告诉我netcdf.mod是用不同版本的fortran编译的。使用。 (Macports使用4.8),所以从macports获得了gcc48,并且现在正在使用gfortran-mp-4.8进行编译,它可以正常工作。

仍然不知道如何从头开始构建所有这些东西,但它现在起作用至少!!!

答案 1 :(得分:1)

通常,当存在无法满足的下游依赖项时,我会看到这一点。由configure创建的测试程序正在查找libhdf5,但编译仍然失败,因为它无法找到类似libzlibszip的内容,具体取决于您的libhdf5的编译方式。< / p>

如果您检查config.log文件并查找错误,它可能会告诉您某些未解决的符号&#39;。这将给出缺少哪个库的线索。如果它链接到静态构建的libhdf5,您可能需要使用LDFLAGS添加相应的库。

如果您发布config.log文件的相关部分,我们可以帮助理清究竟出现了什么问题。

答案 2 :(得分:0)

有时它在配置参数中不起作用

 ./configure --enable-shared --enable-fortran --enable-netcdf-4 
 CPPFLAGS=-I$home/apps2/include LDFALGS=-L$home/apps2/lib --prefix=$home/apps2

或在打开的 SHELL 中导出 CPPFLAGS=-I$home/apps2/include 时不起作用。 也许您可以在 .bashrc 文件中设置环境变量 CPPFLAGSLDFLAGS(在前两种方式之前)。