Tengo un programa que implementa un sistema de complemento cargando dinámicamente una función desde algún plugin_name.so (como de costumbre).GCC/Linux: agregar una biblioteca estática a .so?
Pero a su vez tengo una biblioteca "auxiliar" estática (llamémosle helper.a) cuyas funciones se usan tanto desde el programa principal como desde la función principal del complemento. No tienen que interoperar de ninguna manera, solo son funciones auxiliares para la manipulación de texto y tal.
Este programa, una vez iniciado, no se puede volver a cargar o reiniciar, es por eso que espero tener una nueva funcionalidad de "ayuda" desde el complemento, no desde el programa principal.
Así que mi pregunta es ... ¿es posible forzar este "código de función del complemento" en .so para usar (¿estáticamente enlace contra?) Una versión diferente (quizás más nueva) de "ayuda" que el programa principal?
¿Cómo se pudo hacer esto? quizás al vincular estáticamente o agregar helper.a a plugin_name.so?
Me gustaría agregar que no quiero o no espero utilizar la nueva biblioteca auxiliar del programa principal. Solo me gustaría vincular cada nuevo complemento con una biblioteca auxiliar más nueva/mejor. – conejoroy
¿Hay alguna razón por la que no pueda usar el enlace dinámico para la función auxiliar? –
una vez que se inicia, el programa principal no puede detener la ejecución, incluso para volver a cargar un helper.so más nuevo, y el programa solo necesita una funcionalidad auxiliar muy básica, ya que es solo un marcador de posición para los complementos. entonces prefiero compilar todo el complemento nuevamente si tengo una biblioteca de ayudante nueva/mejorada o extendida. Creo que es más práctico distribuir un solo .so (el complemento) que dos .so (complemento y el asistente más actualizado que usa el complemento) – conejoroy