#include #include #include extern struct Foo imported; int main() { // LIB_NAME defined on commandline std::string libname{"./"}; libname += LIB_NAME; void *handle = dlopen(libname.c_str(), RTLD_NOW); struct Foo *foo = (struct Foo *)dlsym(handle, "global_foo"); assert(foo != nullptr); // Unload dylib (important on Linux so a program re-run loads // an updated version of the dylib and destroys the old lldb module). dlclose(handle); return 0; }