Problems installing preCICE, may be mpi related

Hi everyone,
I’m new to preCICE and encountered a persistent problem when I tried to install it.

My system description:

At step 4 of the quickstart page, when I execute ./Allwmake, I get this error message:

=== ERROR: Building completed with linking problems: there were undefined symbols. ===
Possible causes:
- Is preCICE discoverable at runtime? Check the content of ADAPTER_PKG_CONFIG_LIBS above.

Here are the created log files:
Allwmake.log (712 Bytes)
ldd.log (9.5 KB)
wmake.log (60 Bytes)

The error seems to be related to the file /usr/lib/x86_64-linux-gnu/libmpi_mpifh.so, so maybe it’s related to mpi.

I’m grateful for your help.

Hi @philip,

from the essentially empty wmake.log, I assume that this is not a clean build (you can run ./Allclean first), as no targets were compiled this time. But I also assume that building itself went fine.

Now, from the bottom of your ldd.log, I get the following:

undefined symbol: mpi_conversion_fn_null_	(/usr/lib/x86_64-linux-gnu/libmpi_mpifh.so.40)
undefined symbol: ompi_fortran_string_f2c	(/usr/lib/x86_64-linux-gnu/libmpi_mpifh.so.40)
undefined symbol: ompi_fortran_multiple_argvs_f2c	(/usr/lib/x86_64-linux-gnu/libmpi_mpifh.so.40)
undefined symbol: ompi_fortran_argv_count_f2c	(/usr/lib/x86_64-linux-gnu/libmpi_mpifh.so.40)
undefined symbol: ompi_fortran_argv_blank_f2c	(/usr/lib/x86_64-linux-gnu/libmpi_mpifh.so.40)
undefined symbol: ompi_fortran_string_c2f	(/usr/lib/x86_64-linux-gnu/libmpi_mpifh.so.40)

and I cherry-pick the following lines from above:

libfftw3_mpi.so.3 => /usr/lib/x86_64-linux-gnu/libfftw3_mpi.so.3 (0x00007fe7e6431000)
libhdf5_openmpi.so.103 => /usr/lib/x86_64-linux-gnu/libhdf5_openmpi.so.103 (0x00007fe7e58a4000)
libmpi_mpifh.so.40 => /usr/lib/x86_64-linux-gnu/libmpi_mpifh.so.40 (0x00007fe7e5634000)
libscalapack-openmpi.so.2.1 => /usr/lib/x86_64-linux-gnu/libscalapack-openmpi.so.2.1 (0x00007fe7e2ee1000)

What I understand is that several dependencies are linking to OpenMPI, while some other dependencies are linking to another MPI version. I wonder, however, where the Fortran-related dependencies come from. Is this just OpenFOAM, or something else?

Unfortunately, linking to MPI is usually a bit messy, since all dependencies need to use the same MPI version (this is not specific to preCICE or the adapter, but a general problem). So, you can try enforcing the same MPI version for OpenFOAM and the rest of the dependencies.

Thank you, the conflicting dependencies really seemed to be the problem. I’ve uninstalled my version of OpenMPI and now everything works just fine.

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.