Предполагая, что вы используете Linux, вам сначала нужно добавить
#include <dlfcn.h>
Объявите переменную-указатель функции в соответствующем контексте, например,
int (*alternative_server_init)(int, char **, char **);
Как и Ферруччо, заявленный в https://stackoverflow.com/a/678453/1635364,
явно загрузите библиотеку, которую вы хотите использовать, выполнив (выберите ваши любимые флаги)
void* dlhandle;
void* sym;
dlhandle = dlopen("/home/jdoe/src/libwhatnot.so.10", RTLD_NOW|RTLD_LOCAL);
Считать адрес функции, которую вы хотите вызвать позже
sym = dlsym(dlhandle, "conflicting_server_init");
назначить и разыграть следующим образом
alternative_server_init = (int (*)(int, char**, char**))sym;
Звоните аналогично оригиналу. Наконец, выгрузите, выполнив
dlclose(dlhandle);