Tengo una pregunta: cómo compilar una biblioteca estática en Linux gcc, es decir, necesito compilar mi código fuente en un archivo llamado out.a. ¿Es suficiente simplemente compilar con el comando gcc -o out.a out.c? No estoy muy familiarizado gcc, espero que alguien pueda echarme una mano.
c
gcc
static-libraries
Summer_More_More_Tea
fuente
fuente

Respuestas:
Consulte Crear una biblioteca compartida y estática con el compilador gnu [gcc]
-csignifica crear un archivo objeto intermedio, en lugar de un ejecutable.Esto crea la biblioteca estática.
rsignifica insertar con reemplazo,ccrear un nuevo archivo ysescribir un índice. Como siempre, vea la página del manual para más información.fuente
Aquí un ejemplo completo de makefile:
makefile
explicando el archivo MAKE:
target: prerequisites- el jefe de la regla$@- significa el objetivo$^- significa todos los requisitos previos$<- significa solo el primer requisito previoar- una herramienta de Linux para crear, modificar y extraer archivos, consulte las páginas de manual para obtener más información . Las opciones en este caso significan:r- reemplazar archivos existentes dentro del archivoc- crear un archivo si aún no existes- Crear un índice de archivo de objeto en el archivoPara concluir : la biblioteca estática en Linux no es más que un archivo de archivos de objetos.
main.c usando la lib
lib.h el encabezado principal de libs
lib1.c primera fuente lib
lib1.h el encabezado correspondiente
segunda fuente lib2.c lib
lib2.h el encabezado correspondiente
fuente
arexplicación necesita, ya que es la clave para crear la biblioteca estática.arprograma crea, modifica y extrae de archivos, que son archivos individuales que contienen una colección de otros archivos en una estructura que permite recuperar los archivos individuales originales.arcrea un índice de los símbolos definidos en los módulos de objetos reubicables en el archivo cuando especifica los modificadores. (verman ar)c++compilador:#ifdef __cplusplus extern "C" { #endif . . . #ifdef __cplusplus } #endifGenere los archivos de objetos con gcc, luego utilícelos
arpara agruparlos en una biblioteca estática.fuente