4.3. Creación de bibliotecas dinámicas con GCC
Las bibliotecas enlazadas dinámicamente (objetos compartidos) permiten:
- conservación de recursos mediante la reutilización de códigos
- mayor seguridad al facilitar la actualización del código de la biblioteca
Siga estos pasos para construir e instalar una biblioteca dinámica desde el código fuente.
Requisitos previos
- Debes entender el mecanismo de soname.
- GCC debe estar instalado en el sistema.
- Debe tener el código fuente de una biblioteca.
Procedimiento
- Cambie al directorio con las fuentes de la biblioteca.
Compile cada archivo fuente en un archivo objeto con la opción de código independiente de la posición
-fPIC
:$ gcc ... -c -fPIC some_file.c...
Los archivos objeto tienen los mismos nombres de archivo que los del código fuente original, pero su extensión es
.o
.Enlaza la biblioteca compartida desde los archivos de objetos:
$ gcc -shared -o libfoo.so.x.y -Wl,-soname,libfoo.so.x some_file.o ...
El número de versión mayor utilizado es X y el número de versión menor Y.
Copie el archivo
libfoo.so.x.y
en una ubicación apropiada, donde el enlazador dinámico del sistema pueda encontrarlo. En Red Hat Enterprise Linux, el directorio para las bibliotecas es/usr/lib64
:# cp libfoo.so.x.y /usr/lib64
Tenga en cuenta que necesita permisos de root para manipular los archivos de este directorio.
Crear la estructura de enlaces simbólicos para el mecanismo de soname:
# ln -s libfoo.so.x.y libfoo.so.x # ln -s libfoo.so.x libfoo.so
Recursos adicionales
- El proyecto de documentación de Linux