Accessing .so libraries using dlopen() throws undefined symbol error
I'm trying to dynamically load a camera library .so file into a Linux executable to gain access to simple camera functions. I'm attempting to do this by: if ( (newHandle = dlopen("./libCamera.so",RTLD_LAZY | RTLD_GLOBAL)) == NULL ) { printf( "Could not open file : %s\n", dlerror() ); return 1; } However this fails and I receive the following output: "Could not open file : libCamera.so: undefined symbol: ZTVN10 _cxxabiv117__class_type_infoE" How do I find out what symbols it is relying on? Most likely, libCamera.so uses a symbol defined in a shared library without depending on that library.