0

我正在尝试安装一个使用 MPI 的程序(Parallel Ice Sheet Model,或 PISM)。我一直遇到错误

libpismutil.so: undefined reference to `ompi_mpi_cxx_op_intercept'
libpismutil.so: undefined reference to `MPI::Datatype::Free()'
libpismutil.so: undefined reference to `MPI::Comm::Comm()'
libpismutil.so: undefined reference to `MPI::Win::Free()'

链接 CXX 可执行文件时。我对为什么会发生这种情况感到有些困惑。找到所有 MPI 可执行文件和库所在的程序的配置。

在另一个线程中,有人建议这是由于使用 Fortran 或 C 构建 MPI 时的命名约定不同,但鉴于我两者都有mpicc.mpich2mpif90.mpich2/usr/bin认为这不会是一个问题。

4

1 回答 1

2

经过一番惊吓,我找到了罪魁祸首。我尝试安装的程序使用了一个名为 PETSc 的科学计算库;PETSc 的标准安装不会生成 PISM 所需的共享对象文件,您必须明确告诉它生成它们。完成此操作后,PISM 已正确安装。

当然,由于 openmpi 的一些其他模糊错误,我无法运行它,但这是另一个线程的故事。

于 2013-01-26T00:26:50.477 回答