【问题标题】:Question about compiling sources code with HDF5 and mpi关于使用 HDF5 和 mpi 编译源代码的问题
【发布时间】:2020-11-30 10:01:32
【问题描述】:

当我尝试通过'make'编译源代码时,创建'.o'文件的第一步运行良好,所有'.o'文件都可以正常编译。但是,在编译可执行文件时:

mpifort -fopenmp -O3 -o MyEXE sth.o main.o -L/usr/local/share/fftw-3.3.8/lib -lfftw3_mpi -lfftw3 -lm -L/usr/local/share/mpich-3.2/lib -lmpi -lz -L/usr/local/share/hdf5-1.8.18/lib                                                                               -lhdf5_fortran -lhdf5hl_fortran -lhdf5_hl -lhdf5 -fPIC

出现以下错误:

/usr/bin/ld: /usr/local/share/hdf5-1.8.18/lib/libhdf5.a(H5PL.o): undefined reference to symbol 'dlclose@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libdl.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

我该如何解决这个问题?一些页面提示这是由于调用 c++ 编译器时的 '-ldl- 标志,但我找不到适合我的情况的方法。

【问题讨论】:

    标签: linux mpi gfortran hdf5 fftw


    【解决方案1】:

    页面是正确的。您的 HDF5 库 libhdf5.a 使用函数 dlclose,该函数在库 libdl 中定义。要使用它,您只需在 mpifort 命令行的末尾添加 -ldl

    【讨论】:

    • 非常感谢,问题似乎可以通过在末尾添加“-ldl”标志来解决。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-26
    • 2012-01-24
    • 1970-01-01
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多