Me gustaría construir bibliotecas estáticas y compartidas en un proyecto.Crear bibliotecas estáticas y compartidas de C++
Sé que las bibliotecas compartidas deben crearse a partir de objetos compilados con -fpic para obtener código de posición independiente, mientras que la biblioteca estática no necesita esto. Todo está bien y puedo crear una biblioteca compartida o estática.
No me gustaría compilar mi fuente dos veces para obtener los diferentes archivos de objeto, entonces ¿cómo se hace esto normalmente? Leo how to get a shared library based on a static one. Sin embargo, el ejemplo muestra la biblioteca estática que se está creando con -fpic. ¿Es este el camino a seguir? ¿Hay cosas que tener en cuenta con esto?
¿Existe un enfoque común para compilar bibliotecas estáticas y compartidas? P.ej. primero estático y basado en la lib una versión compartida se crea?
Me interesa saber si hay diferentes enfoques para esto y qué considerar al seleccionar.
Estoy usando gcc4.4 en Linux.
¡Gracias de antemano!
Para este enfoque, ¿cómo se organizarían los archivos de objeto si se desea tener simultáneamente bibliotecas tanto estáticas como compartidas? Algo como obj/static/... y obj/shared/...? – murrekatt
@murrekatt: Claro. Es agradable usar un directorio separado para cada configuración de compilación para que pueda usar muchos simultáneamente sin recompilar completamente para actualizar cada uno. Hacer esos subdirectorios bajo un directorio para mantenerlos da exactamente lo que muestra, al menos si usa "obj" como su directorio principal de compilación y "estático" y "comparte" los nombres de esas dos compilaciones. –