Полагаю, ваша проблема в том, что вы должны загрузить обе библиотеки одновременно. Вы не можете просто связать оба в исполняемом файле, используя две опции -l, потому что имена символов конфликтуют. Если это проблема, длопен, если твой друг.
#include <dlfcn.h>
void * handle=dlopen(filename,RTLD_NOW|RTLD_GLOBAL);
bool (*some_function)(char * name);
some_function=(bool (*)(char *))dlsym(handle,"name_of_some_function");
if (some_function("test")) {
....
} else {
....
}
Поскольку я не знаю DB2, я больше не могу вам помочь, но если это была проблема, у вас теперь должно быть все, чтобы решить эту проблему.