#include <dlfcn.h> #include <stdio.h> #include <stdlib.h> int main (void) { void *handle; int (*test) (int); int res; handle = dlopen ("modstatic.so", RTLD_LAZY); if (handle == NULL) { printf ("%s\n", dlerror ()); exit(1); } test = dlsym (handle, "test"); if (test == NULL) { printf ("%s\n", dlerror ()); exit(1); } res = test (2); if (res != 4) { printf ("Got %i, expected 4\n", res); exit (1); } dlclose (handle); return 0; }