query:-

Hi Androins,
If I modify some source in the codec component (e..g. H.264 Decoder),
then Is it sufficient if I replace the corresponding *.so file in the
system/lib folder on my MMCSDCARD or I need to copy the entire file
system again onto the SDCard.
Actually removed on of my printf in the H.264 decoder component and
replaced the *.so file in the SDcard, but I still saw the printf when
using the PVPlayer.
I am using Android on beagle board (with GStreamer switched off)
Regards,
Sanjeev Kumar Verma

I don’t know about Android, but the following is worth knowing and applies to most operating systems (including Windows if you accept that things are named differently):

  1. Libraries can be included in a binary file (called static linking). If you need to change these libraries then you’ll need to recompile the program making sure the link picks up the right library.
  2. Libraries can be dynamically linked at process startup - done by ld.so (see man ld.so)
  3. Sometimes libraries are loaded by a program, e.g. for plugins - using dlopen() (see man dlopen)
  4. You can use “ldd executable” to see static and dynamic libraries.
  5. You might need to use strace to see application calls to dlopen() that also loads libraries.
  6. Some libraries have additional library dependencies, you can use ldd on .so files too.
  7. Search paths for libraries can be pre-programmed into the binary using RPATHs.
  8. Libraries will be searched for using LD_LIBRARY_PATH
  9. Libraries can be cached in /etc/ld.so.cache (see man ldconfig)
  10. It is not practical for applications to re-load libraries [but its not impossible]

Okay okay, now for some help: I would use ldd to see where the program is getting its libraries from - its probably not where you thought… Make sure the program really has quit before restarting it… Try running ldconfig to rebuild the cache…