librerias estáticas dinamicas crear como bibliotecas linux gcc linker debian

linux - estáticas - ¿Cómo se vincula a una versión específica de una biblioteca compartida en GCC?



bibliotecas estáticas (4)

¿Qué le parece crear un enlace simbólico local a su proyecto que enlace a .3, luego puede usar -L en tiempo de compilación? Sin embargo, no estoy seguro de si te darían un conflicto de nombres, pero siempre podrías llamarlo libcurl-old.so por las dudas.

Estoy compilando un código que usa libcurl en un sistema Debian Linux. Mi máquina dev está ejecutando Debian 5, pero también quiero que el binario se pueda usar en sistemas anteriores de Debian 4.

Me parece que si especifico -lcurl se vinculará con libcurl.so.4 pero los sistemas Debian 4 solo tienen libcurl.so.3

¿Hay alguna forma en que pueda decirle a GCC que se vincule con libcurl.so.3 (que existe en Debian 4 y 5) o simplemente con libcurl.so para que use la versión que esté disponible?


En lugar de usar "-lcurl" use "-l: libcurl.so.3" Y por supuesto también use "-L _installed_path_"


Puede pasar el archivo .so real en lugar de -l en la línea de comando del enlazador, y debe hacer lo que desee.


Creo que la forma correcta de hacer eso será usar las banderas --filter y --auxiliary del enlazador.

No están muy documentados, pero deberían permitirle cargar símbolos de diferentes versiones de la misma biblioteca de acuerdo con la máquina en la que está instalado.