MPI неопределенные ссылки на объекты

Я пытаюсь установить программу (Parallel Ice Sheet Model, или PISM), которая использует MPI. Я продолжаю сталкиваться с ошибками

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.

В другом потоке кто-то предположил, что это связано с различными соглашениями об именах, когда MPI создается с Fortran или C, но, видя, у меня есть оба mpicc.mpich2 а также mpif90.mpich2 в моем /usr/bin Я думаю, это не будет проблемой.

0

Решение

После долгих потрясений я нашел виновника. Программа, которую я пытаюсь установить, использует библиотеку для научных вычислений под названием PETSc; стандартная установка PETSc не генерирует совместно используемые объектные файлы, необходимые для PISM, вы должны явно указать это для их создания. Как только это было сделано, PISM установлен правильно.

Конечно, я не смог запустить его из-за какой-то неясной ошибки с openmpi, но это история для другого потока.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]