MPI 未定义的对象引用
MPI undefined object references
我正在尝试安装一个使用MPI的程序(平行冰盖模型或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 时命名约定不同,但看到我的/usr/bin
中既有mpicc.mpich2
又有mpif90.mpich2
,我认为这不是问题。
在一番惊愕之后,我找到了罪魁祸首。我尝试安装的程序使用一个名为 PETSc 的科学计算库;PETSc 的标准安装不会生成 PISM 所需的共享对象文件,您必须明确告诉它制作它们。完成此操作后,PISM 正确安装。
当然,由于 openmpi 的其他一些晦涩错误,我无法运行它,但这是另一个线程的故事。
相关文章:
- 如果用户尝试从 JS 调用对象的未定义函数C++则回调C++代码
- Cython:共享对象中未定义的符号
- qt vsaddin错误对象引用未设置为对象的istanse
- 通过在此指针上放置新位置重新初始化对象时未定义的行为
- 对c++中的泛型对象的未定义引用
- Rcpp:无法加载共享对象,未定义符号
- 对象引用未设置为对象的实例 (C++/CLI)
- 可视C++对象引用未设置为对象的实例
- 对类::对象的未定义引用
- 右值引用未定义的行为
- 对"vtable for DigitalClock"的未定义引用 - 未定义对"DigitalClock::staticMetaObject"的引用 - Qt
- 函数类型到函数类型的引用:未定义的引用
- 正在修改const声明对象上的可变对象的未定义行为
- avcodec_alloc_context引用未定义,但ffmpeg链接顺序正确
- 对对象的未定义引用
- 从c++调用Fortran子程序,链接时引用未定义
- c++对对象的未定义引用
- 从文件中读取对象时未定义的符号
- 对本地对象的未定义引用
- 显示对已定义对象的未定义引用