【问题标题】:Compiling meep with openmpi用 openmpi 编译 meep
【发布时间】:2011-04-06 16:59:34
【问题描述】:

我正在尝试在具有 Corei7 处理器的 iMac 上使用 OpenMPI 从 MIT 构建 meep。我使用 macport 安装了 OpenMPI。

我还用 OpenMPI 安装了 hdf5。

现在,当我尝试使用 --with-mpi 使用 mpi 编译 meep 时,meep 无法编译并给出以下错误消息。

CXXLD  meep_mpi
Undefined symbols:
  "MPI::Comm::Set_errhandler(MPI::Errhandler const&)", referenced from:
  vtable for MPI::Intercommin libmeep_mpi.a(h5file.o)
  vtable for MPI::Graphcommin libmeep_mpi.a(h5file.o)
  vtable for MPI::Cartcommin libmeep_mpi.a(h5file.o)
  vtable for MPI::Intracommin libmeep_mpi.a(h5file.o)
  vtable for MPI::Commin libmeep_mpi.a(h5file.o)
  vtable for MPI::Intercommin libmeep_mpi.a(mympi.o)
  vtable for MPI::Graphcommin libmeep_mpi.a(mympi.o)
  vtable for MPI::Cartcommin libmeep_mpi.a(mympi.o)
  vtable for MPI::Intracommin libmeep_mpi.a(mympi.o)
  vtable for MPI::Commin libmeep_mpi.a(mympi.o)
  "MPI::Win::Set_errhandler(MPI::Errhandler const&)", referenced from:
  vtable for MPI::Winin libmeep_mpi.a(h5file.o)
  vtable for MPI::Winin libmeep_mpi.a(mympi.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[3]: *** [meep_mpi] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

我不明白出了什么问题。我正在按照 meep 网站上的说明进行操作。 Parallel MeepMeep Installation

请帮忙。

【问题讨论】:

    标签: macos compilation osx-snow-leopard openmpi meep


    【解决方案1】:

    我推荐 mpich 与 openmpi(我的偏好),但请确保您的 HDF5 MPI 安装正常(即,确保设置 --with-mpi 配置标志并检查您的配置是否已在运行配置后的最终消息)。

    【讨论】:

    • 我使用 MacPort 中的 openmpi 选项安装了 HDF5。我认为它将安装 HDF5 的并行版本。这可能是问题吗?
    • 绝对!在构建 HDF5 之前,您必须预先安装您选择的 MPI 的相关开发库。根据我坚持检查在 HDF5 安装的 ./configure 步骤中是否找到了您的 MPI 安装。
    【解决方案2】:

    遇到了同样的问题。如果您将 openmpi 二进制文件链接到 mpixxx 等效项(如 openmpicc -> mpicc),它就可以工作。否则配置脚本正在寻找它们但找不到它们并丢弃 --with-mpi 标志。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-31
      • 2013-07-07
      • 2013-03-15
      • 1970-01-01
      • 2017-02-22
      • 2012-08-08
      • 2012-03-12
      • 2019-10-27
      相关资源
      最近更新 更多