error while loading shared libraries: libgomp.so.1: , wrong GCC version?
c++, c-libraries, gcc
Solution
The program was linked against a specific version of libgomp (`libgomp.so.1`) and it can only be used by that one. So you have to either:
- Obtain the source code of the application and compile it yourself for your system,
- Obtain an another version of the application compiled against newer version of gcc,
- Obtain a statically linked version of the application,
- If your distribution supports that, install the older version of libgomp in parallel,
- If it doesn't, you can still grab the older libgomp binary and put it in your `/usr/lib` (preferably, `/usr/local/lib` instead if that path is in your `/etc/ld.so.conf`),
- And finally, if that's possible you can downgrade gcc to the older version to make it work. But it's a bad, short-time solution.
Problem
While executing a 3rd party c++ program I get the following error: error while loading shared libraries: libgomp.so.1: cannot open shared object file: No such file or directory The libgomp.so.1 library is the GNU compiler collection OpenMP runtime library. Is this part of the GCC package? I can run the program on a system with gcc-4.5, but not system with gcc-4.3 or gcc-4.6. Or do I need to install another package? I tried to fix this manually on the system with gcc-4.3 by downloading the library and putting it on the LD_LIBRARY_PATH, but then I get another missing library : /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found . libstdc is the GNU Standard C++ library so this also indicates a wrong version of GCC? I am not a C++ developer so I don't fully know what these libraries are and how libraries work in general with C++ code. The os is linux 64 bit. gcc-4.3 machine : openSUSE 11.1 gcc-4.5 machine : openSUSE 11.4 (on this machine the program works) gcc-4.6 machine : openSUSE 12.1