Под Gcc нижеследующий пример успешно компилируется и работает.
// shared.c
#include <stdio.h>
void shared_func ()
{
  puts ("shared_func() called successfully! ;-)");
  printf ("Calling test_func() from library: ");
  test_func (); // -- определена в исполняемом файле
}
// test.c
#include <stdio.h>
test_func () // -- вызывается из shared.so
{
  puts ("test_func() called successfully! ;-)");
}
void main ()
{
  printf ("Calling shared_func() from main: ");
  shared_func ();
}
#!/bin/sh
gcc -o libshared.so shared.c -fPIC -shared
gcc -o test test.c -L. -lshared
LD_LIBRARY_PATH=. ./test




