Zu a) Die Datei sollte heißen "libTestlibrary.so"
Am einfachsten ist es, die Datei in das gleiche Verzeichnis wie die Binary zu deployen.
Da Du ja hier eine Hart-Codierung für den Bezug zur
DLL (bzw. ".so") gewählt hast, compiliert der Compiler die Adressen zu den Funktionen in der
DLL "hart" in Dein Programm ein.
Dazu muss der Compiler zum Kompilierzeitpunkt wissen, wo Deine
DLL liegt. Dummerweise sucht er nicht einfach dort da, wo auch die Binary erzeugt wird. Man muss (auch seltsam, aber so funktioniert es) unter Tools, im Bibliothekspfad das Verzeichnis angeben, wo Deine
DLL (also .so) liegt.
Zu Deiner Frage b) verstehe ich Deine Frage nicht ganz. Welche
DLL Shared Object ist gemeint? Falls Du da die Borland shared memory
dll meinst (BORLNDMM.DLL), das ist eine reine Windows-
Dll, die kannst Du unter Linux nicht verwenden.