¿Es sdwebimage una biblioteca estática o una biblioteca dinámica?
Existen dos tipos de bibliotecas: bibliotecas estáticas y bibliotecas dinámicas.
Las bibliotecas estáticas están vinculadas al código de destino cuando se compila el programa y ya no serán necesarias cuando se ejecute el programa.
Las bibliotecas dinámicas no están vinculadas al código de destino cuando se compila el programa, pero se cargan cuando el programa se está ejecutando, por lo que la biblioteca dinámica es necesaria cuando el programa se está ejecutando.
Este artículo utilizará ejemplos para presentar cómo crear bibliotecas estáticas y bibliotecas dinámicas en Linux y cómo usarlas.
Antes de crear la biblioteca, preparemos el programa fuente para el ejemplo y compilemos el programa fuente de la biblioteca en un archivo .o.
Paso 1: Edite los programas que dieron como resultado el ejemplo: hola.h, hola.c y main.c.
hello.h (consulte el Programa 1) es el encabezado; archivo de la biblioteca.
hello.c (ver Programa 2) es el programa fuente de la biblioteca, que contiene la utilidad hello, que imprime "¡Hola XXX!" en la pantalla.
main.c (ver programa 3) es el programa principal del archivo de la biblioteca de prueba, que llama a la utilidad hola. c
#include
void hola(const char *nombre)
{
printf("¡Hola %s! n", nombre);
}
Programa 3: main.c
#include "hello.h"
int main()
{
hola("todos");
return 0;
}
Paso 2: compilar hello.c en un archivo .o;
Tanto las bibliotecas estáticas como las dinámicas se crean a partir de archivos .o. Por lo tanto, primero debemos compilar el programa fuente hello.c en un archivo .o a través de gcc.
Escriba el siguiente comando en el símbolo del sistema para obtener el archivo hello.o.
# gcc -c hello.c
#
(Nota 1: este artículo no presenta el uso del comando ni la función de sus parámetros. Si desea obtener más información, consulte otros documentos).
(Nota 2: el primer carácter "#" es el mensaje del sistema, no es necesario escribirlo, igual que a continuación).
Ejecutamos el comando ls para ver si el archivo hello.o está activo.
# ls
hello.c hello.h hello.o main.c
#
(Nota 3: Los primeros caracteres distintos de "#" son el resultado de la operación del sistema, que es el mismo que se muestra a continuación)
En el resultado del comando ls, vemos el archivo hello.o y este paso se completa.
Veamos cómo crear y utilizar una biblioteca estática.
Paso 3: cree una biblioteca estática a partir de un archivo .o;
La convención de nomenclatura para los nombres de archivos de bibliotecas estáticas es anteceder el nombre con lib, luego el nombre de la biblioteca estática , con la extensión .a. Por ejemplo, si creamos una biblioteca estática llamada myhello, entonces el nombre del archivo de la biblioteca estática es libmyhello.a. Para crear una biblioteca estática, use el comando ar.
Escriba el siguiente comando en el símbolo del sistema para crear el archivo de biblioteca estática libmyhello.a.
# ar cr libmyhello.a hello.o
#
También podemos ejecutar el comando ls para ver los resultados:
# ls
hello.c hello.h hello.o libmyhello.a main.c
#