La Web del Programador: Comunidad de Programadores
 
    Pregunta:  37146 - CREAR PLUGINS / LIBRERIAS
Autor:  César Hernández Bañó
Quiero hacer un programa que utilice plugins, al estilo del Winamp. El esquema general seria este: un programa principal, llamado main, y una serie de plugins, llamados plugin1, plugin2, etc. Cada plugin tendrá, por ejemplo, una funcion llamada init() y otra llamada end(). La idea es que cada plugin se pueda crear por separado del programa principal.
He intentado crear cada plugin como librerias compartidas (.so) y luego que el programa main llame a las funciones init() y/o end() de cada plugin.
El problema es que, como el programa principal no "conoce" la existencia de los plugins, no me puede compilar las llamadas a init() y end().
Como puedo hacer esto? Agradeceria cualquier sugerencia. Gracias

  Respuesta:  César Hernández Bañó
Hola.
Ya he encontrado respuesta para mi pregunta: el problema se reduce a usar las funciones dlopen (abrir libreria) y dlsyms(asignar simbolo); estan presentes en la libreria libdl.
Si hacemos man dlopen veremos un ejemplo. Cada plugin debe crearse como una libreria compartida.