2011-01-21 13 views
8

Recientemente he leído un montón de bibliotecas compartidas en Linux, y aquí es lo que aprendí:¿Cuáles son las buenas prácticas con respecto a las bibliotecas compartidas en Linux?

  • Una biblioteca compartida debe incorporar un soname incluyendo su número de versión principal. Algo como: libfoo.so.1
  • Su nombre de archivo real también debe incluir un número de versión menor. Algo así como: libfoo.so.1.0
  • Cuando el archivo de biblioteca se copia a, por ejemplo /usr/local/lib, si se ejecuta ldconfig, se leerá el soname y crear un enlace simbólico llamado libfoo.so.1 señalando libfoo.so.1.0.
  • Si uno quiere usar esta biblioteca para su desarrollo, primero debe crear un enlace simbólico sin ningún número de versión al archivo real, digamos libfoo.so apuntando a libfoo.so.1.0. Esto generalmente lo hace el paquete de desarrollo (cuando la biblioteca está empaquetada).

¿Es esto correcto?

+2

Tiene razón, pero vea http://www.nondot.org/sabre/Mirrored/libtool-2.1a/libtool_6.html de todos modos :) – ismail

+1

¿Qué leyó? – Navi

+0

@Navi: Varios enlaces, páginas man ('ldconfig',' gcc') y yo mismo. Este enlace fue útil: http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html – ereOn

Respuesta

18

Lectura recomendada:

Ulrich Drepper de Cómo escribir bibliotecas compartidas: http://www.akkadia.org/drepper/dsohowto.pdf

Buenas prácticas de Ulrich Drepper en el diseño de la biblioteca, implementación y mantenimiento:

dsohowto es mucho más detallada. GoodPractice es una lectura rápida.

+0

+1: buenos enlaces, gracias. – ereOn

Cuestiones relacionadas