2

I have a problem connected to a version of the openmpi library. Recently I had installed the newest stable version of the openmpi (1.10.2) and one of the programs I use stopped working. There is an error message when I run it:

error while loading shared libraries: libmpi.so.1: cannot open shared object file: No such file or directory

Indeed, there is no such a file in my system. There is however a newer version of the library - libmpi.so.12 and libmpi.so.12.0.2. Other programs, which are using openmpi, work without any error, which proves that the library was installed correctly (at least I think so (: ).

Unfortunately, I don't know which version of the openmpi was used to compile the program. I don't have access to its source code, so I cannot compile it against the newer library. I noticed that I can make the program run if I copy the libmpi.so.12 to the file called libmpi.so.1

Therefore, I have two questions:

  1. Is it reasonable to use the workaround I've found? I have some doubts, although the program appears to run well.
  2. Is there a way to check which version of the openmpi library was used during a compilation?

Thanks in advance.

EDIT: I use Linux Mint 17.3.

Mickan
  • 21
  • 3
  • 1
    That the soname of the newer Open MPI library (`libmpi.so.12`) differs from the soname of the older version (`libmpi.so.1`) indicates that the API of the former is sufficiently different, therefore programs linked against the older version should not be executed with the newer one or vice versa. Since Open MPI does not version its symbols, it is not really possible to determine the version of Open MPI that the executable was built against (unless runtime library search path information is embedded in it and Open MPI was installed in a path containing its version number) – Hristo Iliev Apr 08 '16 at 11:30
  • Possible duplicate of [How do applications resolve to different versions of shared libraries at run time?](http://stackoverflow.com/questions/3839756/how-do-applications-resolve-to-different-versions-of-shared-libraries-at-run-tim) – Employed Russian Apr 10 '16 at 01:47

0 Answers0