Red de conocimiento informático - Material del sitio web - Cómo generar bibliotecas estáticas y bibliotecas dinámicas

Cómo generar bibliotecas estáticas y bibliotecas dinámicas

Biblioteca estática

El sufijo de la biblioteca estática es. a, su generación se divide en dos pasos.

Paso 1. Compilar y generar un conjunto. o del archivo fuente, cada uno. oContiene la tabla de símbolos para esta unidad de compilación.

Paso 2. El comando ar se utilizará en grandes cantidades. Ah Cheng. Conviértete en una biblioteca estática.

El sufijo de la biblioteca dinámica es. Entonces, gcc lo compila con parámetros específicos. Consulte el ejemplo siguiente para conocer métodos específicos. 123123

En el sistema GNU/Linux, en realidad existen múltiples archivos de enlaces estáticos. ofile. Supongamos que tenemos los archivos cool.h cool.c y some.c y queremos obtener la biblioteca de enlaces estáticos libcool.a. Primero, utilice las siguientes instrucciones para obtener los archivos objeto correspondientes cool.o y some.o:

gcc -c cool

gcc -c some.c1212

El archivo de destino generado por este método se llama PDC, que es un código que depende de la posición. Luego use el siguiente comando para obtener el archivo de enlace estático libcool.a:

ar -r libcool.a cool.o some.o

ran lib lib cool

La biblioteca de enlaces estáticos libcool.a cumple con la convención de nomenclatura de bibliotecas de enlaces estáticos especificada por GNU/Linux y debe ser "libyour_library_name.a".

Almacén dinámico

Los archivos de enlace dinámico en GNU/Linux deben ser generados por el enlazador ld. Supongamos que tenemos archivos como hot.c other.c para generar una biblioteca de enlaces dinámicos libhot.so. Primero, use las siguientes instrucciones para obtener los archivos objeto correspondientes hot.o y some.o

gcc -fPIC. -c hot

gcc -fPIC -c other.

El parámetro -fPIC especifica que el archivo objeto generado es código independiente de la posición y solo se puede utilizar PIC para generar dinámica. bibliotecas de enlaces. Luego use las siguientes instrucciones para obtener la biblioteca dinámica:

LD -bshared -o lib hot .o other .

O puede usar el contenedor ld del compilador. :

gcc-shared-o lib hot . so hot . o other

También puedes usar el compilador para generar bibliotecas dinámicas:

gcc- fPIC-shared-o lib hot . so hot . c other c 11

La opción -shared aquí indica que el tipo de archivo de destino es una biblioteca de vínculos dinámicos y el estándar de nomenclatura del mismo. La biblioteca dinámica es "libyour_library_name.so".