Existe uma maneira elegante de evitar o dlsym ao usar o dlopen em C?
Preciso abrir dinamicamente uma biblioteca compartilhadalib.so
se uma condição específica for atendida em tempo de execução. A biblioteca contém ~ 700 funções e eu preciso carregar todos os seus símbolos.
Uma solução simples é definir os ponteiros de função para todos os símbolos contidos emlib.so
, carregue a biblioteca usandodlopen
e, finalmente, obtenha os endereços de todos os símbolos usandodlsym
. No entanto, dado o número de funções, o código que implementa esta solução é muito complicado.
Eu queria saber se existe uma solução mais elegante e concisa, talvez com um uso apropriado de macros para definir os ponteiros de função. Obrigado!