4.4. Creación de bibliotecas estáticas con GCC y ar
La creación de bibliotecas para la vinculación estática es posible mediante la conversión de los archivos de objetos en un tipo especial de archivo.
Red Hat desaconseja el uso de la vinculación estática por razones de seguridad. Utilice la vinculación estática sólo cuando sea necesario, especialmente contra las bibliotecas proporcionadas por Red Hat. Consulte Sección 3.2, “Enlace estático y dinámico” para más detalles.
Requisitos previos
- GCC y binutils deben estar instalados en el sistema.
- Debe entender el enlace estático y dinámico.
- Se dispone de archivo(s) de origen con funciones para compartir como biblioteca.
Procedimiento
Crear archivos de objetos intermedios con GCC.
$ gcc -c source_file.c...
Añada más archivos fuente si es necesario. Los archivos objeto resultantes comparten el nombre del archivo pero utilizan la extensión de nombre de archivo
.o
.Convierta los ficheros objeto en una biblioteca estática (archivo) utilizando la herramienta
ar
del paquetebinutils
.$ ar rcs libfoo.a source_file.o...
Se crea el archivo
libfoo.a
.Utilice el comando
nm
para inspeccionar el archivo resultante:$ nm libfoo.a
- Copie el archivo de la biblioteca estática en el directorio correspondiente.
Al enlazar con la biblioteca, GCC reconocerá automáticamente, a partir de la extensión del nombre del archivo
.a
, que la biblioteca es un archivo para el enlace estático.$ gcc ... -lfoo...
Recursos adicionales
Página del manual de Linux para ar(1):
$ man ar