Linking errors! OK, so first of all, you need to rename libPng.so to libpng.so, keep it all lower-case. Second, you need to add zlib to the uses clause. After that, the following linking errors remain:

Code:
libpng.o(.text+0xb1): In function `LIBPNG_PNG_SIG_BYTES$$PNG_BYTEP':
: undefined reference to `png_sig_bytes'
libpng.o(.text+0x411): In function `LIBPNG_PNG_GET_SCAL_S$POINTER$PNG_INFOP$LONGINT$PNG_CHARPP$PNG_CHARPP$$LONGWORD':
: undefined reference to `png_get_sCAL_s'
libpng.o(.text+0x871): In function `LIBPNG_PNG_SET_ITXT$POINTER$PNG_INFOP$PNG_TEXTP$LONGINT':
: undefined reference to `png_set_itxt'
libpng.o(.text+0x9a1): In function `LIBPNG_PNG_SET_SCAL_S$POINTER$PNG_INFOP$LONGINT$PCHAR$PCHAR':
: undefined reference to `png_set_sCAL_s'
/usr/lib/libpng.so: undefined reference to `pow'
pngtest.pp(32,1) Error: Error while linking
The undefined reference to `pow' can be fixed by adding {$LINKLIB m} to your libpng unit (alternatively I can just add -lm to my compiler command-line). If I comment out the declarations to the other 4 functions, I can compile it fine. And when I run it, everything works, I see the "We can start decoding now" message. I have version 1.2.12 of libpng.