
On 14/05/13 20:50, Duncan Roe wrote:
On Tue, May 14, 2013 at 07:06:59PM +1000, Allan Duncan wrote:
On 13/05/13 22:30, Matt Davis wrote:
ldconfig -p | grep libpng
libpng15.so.15 (libc6) => /usr/lib/libpng15.so.15 libpng15.so (libc6) => /usr/lib/libpng15.so libpng12.so.0 (libc6) => /usr/lib/libpng12.so.0 libpng.so.3 (libc6) => /usr/lib/libpng.so.3
Ah-ha. I hadn't noticed before - libpng12 only exists as libpng12.so.0 - there is no bare libpng12.so
Not sure why - the libpng15 doesn't have /usr/lib/libpng15.so in the rpm either, it is generated by a script on installation.
I suspect the answer is: you have libpng12 et al as runtime support for old programs. The devel package you have installed is libpng15. The header files in /usr/include are designed for use with png15. If you force-load png12 (by making the symlink /usr/lib/libpng12.so) there is no guarantee that the API will match the header files. So, you should be loading with -lpng15. If you *need* to build a png12 app, you should upgrade to png12 devel, which will (or should) delete /usr/lib/libpng15.so).
Hope this helps,
Cheers ... Duncan.
No, the gnuplot 4.6 build explicitly requests libpng12. I have both png15 and png12-compat installed. The cure was to make a symlink for libpng12.so to libpng12.so.0 and rerun ldconfig. Now "ldconfig -p | grep libpng" gives libpng15.so.15 (libc6) => /usr/lib/libpng15.so.15 libpng15.so (libc6) => /usr/lib/libpng15.so libpng12.so.0 (libc6) => /usr/lib/libpng12.so.0 libpng12.so (libc6) => /usr/lib/libpng12.so libpng.so.3 (libc6) => /usr/lib/libpng.so.3