#ifdef LIB int foo = 42; #else #include #include int main() { void *h1, *h2, *hg; h1 = dlopen("./libA.so", RTLD_NOW|RTLD_LOCAL); h2 = dlopen("./libB.so", RTLD_NOW|RTLD_GLOBAL); hg = dlopen(0, RTLD_NOW|RTLD_GLOBAL); printf("%p\n", dlsym(hg, "foo")); dlopen("./libA.so", RTLD_NOW|RTLD_GLOBAL); printf("%p\n", dlsym(hg, "foo")); } #endif