Estoy usando gcc para compilar un programa que necesito vincular a una biblioteca C con un nombre no estándar; se llama stuff.a
en lugar de libstuff.a
.Vinculación de la biblioteca C con nombre no estándar
No puedo cambiar el nombre del archivo (problemas de permisos).
no quiero que incluya la biblioteca completa (es decir, usando gcc program.c stuff.a -oprogram
)
quiero compilar como gcc program.c -L/path/to/library/ -lstuff -oprogram
pero gcc no se encuentra la biblioteca (porque no se llama libstuff.a
).
Estoy trabajando en una caja de Linux.
¿Cómo puedo obtener el enlace (dinámico) hecho?
EDIT:
todos ustedes, y mis disculpas Gracias por una pregunta mal redactado.
Ni siquiera tenía un objeto compartido (pensé que podía vincular dinámicamente a un archivo * .a), por lo que esto confundió a muchos de ustedes. Nuevamente, disculpas por mi ignorancia.
Lo que terminé haciendo es crear el objeto compartido en un directorio local, agregando la ubicación a mi variable de entorno LD_LIBRARY_PATH y volviendo a vincular.
Funciona como un amuleto (desde 1.3M ejecutable hasta 5.8K).
Gracias de nuevo.
¿existe una versión de objetos compartidos de la biblioteca (stuff.so)? – jschmier
olvidé mencionar, estoy trabajando en Linux. – Escualo
@jschmier: no, solo la biblioteca '.a'. – Escualo