Estoy compilando algún 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.Cómo enlazar a una versión específica de una biblioteca compartida en GCC
Me parece que si puedo especificar -lcurl se unirá a libcurl.so.4 pero Debian 4 sistemas sólo tienen libcurl.so.3
¿Hay alguna manera de que pueda decirle a gcc para enlazar a cualquiera libcurl.so.3 (que existe en Debian 4 y 5) o simplemente libcurl.so, de modo que usará la versión que esté disponible?
En la versión anterior de Debian, ¿no es libcurl.so un enlace simbólico a libcurl.so.3? Quiero decir, parece extraño que -lcurl no haga lo correcto por defecto. –
kastauyra: las versiones no son, o al menos no pueden suponerse, compatibles con binarios. Entonces, cuando lo vincula, registra la versión principal vinculada en el binario: si compila en el sistema más nuevo, requerirá la versión 4 y no funcionará en el sistema anterior. (En realidad, lo que registra es el soname, que es una cadena almacenada en el archivo de la biblioteca que convencionalmente pero no necesariamente es algo "libcurl.so.3") –