Tengo una biblioteca compartida con algunas funciones caseras, que compilo en mis otros programas, pero tengo que vincular el programa final con todas las bibliotecas que he utilizado para compilar la biblioteca estática. Aquí hay un ejemplo:Compilar una biblioteca compartida estáticamente
Tengo la función foo
en la biblioteca que requiere una función de otra biblioteca libbar.so
.
En mi programa principal para usar la función foo
tengo que compilarlo con la bandera -lbar
. ¿Hay alguna manera de que pueda compilar mi biblioteca estáticamente, por lo que incluye todo el código requerido de las otras bibliotecas, y puedo compilar mi programa final sin necesitar el indicador -lbar
?
Podría indicar explícitamente las plataformas en uso? Idealmente, estarían en las etiquetas. –
ejecutándose en linux –
nota lateral; no solo no tendrías que -lbar, sino que una vez que comiences, tu enlazador eliminará todos los símbolos a los que * tu * código no hace referencia (directa o indirectamente hacia abajo a través de tu cadena de llamadas). ¡Esto reducirá tu ejecutable y ayudará a que tu aplicación se inicie más rápido! – Armentage