/opt/Imagination/PowerVR_Graphics/PowerVR_Tools/PVRVFrame/GUI/Linux_x86_64/PVRVFrameGUI
/opt/Imagination/PowerVR_Graphics/PowerVR_Tools/PVRVFrame/GUI/Linux_x86_64/PVRVFrameGUI: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory
The library is installed but at a later version
michel@michel ~/Téléchargement $ ls -la /usr/lib/libpng*
lrwxrwxrwx 1 root root 11 29 jun 19:47 /usr/lib/libpng.so -> libpng16.so
lrwxrwxrwx 1 root root 19 29 jun 19:47 /usr/lib/libpng16.so -> libpng16.so.16.16.0
lrwxrwxrwx 1 root root 19 29 jun 19:47 /usr/lib/libpng16.so.16 -> libpng16.so.16.16.0
-rwxr-xr-x 1 root root 211920 29 jun 19:47 /usr/lib/libpng16.so.16.16.0
It is not that simple. With gentoo it is not possible to have this. What I would need to do is create another package with a different name. There could still be a problem, the first line would need to be /usr/lib/libpng.so -> libpng12.so
If I was to do that it would break any program that expects version 1.6
Hi Micel. Gentoo may have some policy on this, but functionally there’s no reason why you can’t have multiple versions of libraries installed on a Linux system, either in system directories or elsewhere. I’ve done this before many times, and it’s simple.
First, you’re trying to run the 64-bit version of PVRVFrameGUI (Linux_x86_64), so you’re going to need a 64-bit shared library version of libpng 1.2.x accessible via the name “libpng12.so.0” somewhere in your dynamic linker’s search patch.
Now really this libpng12.so.0 should be built from some 1.2.x version of the libpng source code. If you can find that for Gentoo, then just grab that. That’s really the way to go. However if not, as a temporary band-aid you can sometimes get away with using the version you currently have installed on your system – it just depends on how compatible the APIs are.
See the ld.so (8) man page for complete details. But basically here’s one way to get PVRVFrameGUI going for you, without requiring multiple versions of libpng to be installed in the system directories.
[pre]# SETUP
cd PVRVFrame/GUI/Linux_x86_64/
ln -s /usr/lib/libpng16.so libpng12.so.0 # <-- Either do this…
cp /tmp/libpng12.so.0 libpng12.so.0 # <-- or better yet, copy in a genuine 1.2.x lib built for your system.[/pre]
then later to run (you can toss this in a shell script so you don’t have to retype it every time):
[pre]# RUNNING
cd /opt/Imagination/PowerVR_Graphics/PowerVR_Tools/PVRVFrame/GUI/Linux_x86_64/
export LD_LIBRARY_PATH=/opt/Imagination/PowerVR_Graphics/PowerVR_Tools/PVRVFrame/GUI/Linux_x86_64/
./PVRVFrameGUI &[/pre]
Above I assume you’re using a sh/bash shell here; if not, adapt for csh/tcsh syntax.
Here I also assume that you were unable to find (or build) a genuine libpng12.so built from libpng 1.2.x source code and you’re going to try just using the current version on your system (libpng16.so).
Further I assume the libraries in your /usr/lib directory are 64-bit. You can check this by running “file /usr/lib/libpng16.so.16.16.0” or "file /usr/lib/". If you see 32-bit, then go install the 64-bit libpng .so and use that instead. (On Linux systems I’ve worked on /usr/lib/ typically contains 32-bit libs and /usr/lib64/* contains 64-bit libs, but I don’t know what conventions Gentoo uses.