como chamar a função no executável da minha bibliotec

Tenho um executável e uma biblioteca dinâmica (.so). A biblioteca exporta alguns símbolos e o executável chama com sucesso. Mas quero tornar possível a função de executável de chamada de biblioteca. Eu tentei fazer o seguinte no executável:

//test
extern "C" void print(const char * str) {
    std::cout << str << std::endl;
}

e isso na biblioteca:

extern "C" void print(const char *);

mas quando ligo paradlopen no executável (para carregar a biblioteca) retorna erroundefined symbol: print. como posso consertar isso?

questionAnswers(2)

yourAnswerToTheQuestion