tengo dos bibliotecas, por ejemplo, dos bibliotecas tostadora libtoaster_a.so y libtoaster_b.so y de los principales enlaces simbólicos/menor/rev asociados P. ej libtoaster_a.so.1.0.0 etc. Ambas bibliotecas implementan la misma interfaz tostadora, pero simplemente realizan el procesamiento de manera diferente. Por lo tanto, cuando construyo una aplicación que usa la biblioteca, no importa cuál se use (desde la perspectiva de las aplicaciones son las mismas).enlace gcc contra enlace simbólico
Porque me gustaría decidir qué biblioteca para usar después de la aplicación se ha compilado y distribuido hago un enlace simbólico libtoaster.so que apunta a libtoaster.so.1 que puede apuntar a libtoaster_a .so.1 y libtoaster_b.so.1. Por lo tanto, el usuario/instalador podría simplemente cambiar el enlace libtoaster.so.1 para elegir la implementación que se usará.
Para que la creación decir que tengo libtoaster.so.1 vinculado a libtoaster_a.so.1 por defecto. cuando compilo mi aplicación, por ejemplo: my_app por algo así como gcc -o my_app -ltoaster...
compila e incluso se ejecuta con libtoaster_a.so.1 correctamente. Sin embargo, si ejecuto ldd en my_app, veré que está vinculado a libtoaster_a.so.1 en lugar de libtoaster.so.1 según lo desee, por lo tanto, cambiar el libtoaster.so.1 no tiene ningún efecto.
¿Existe una manera más agradable para solucionar este problema de hacer libtoaster_a.so.1, cambiar el nombre a libtoaster.so.1, haciendo my_app contra esta biblioteca a continuación, eliminar libtoaster.so.1 y creándolo como un enlace simbólico de nuevo?