Un proyecto en el que estoy trabajando utiliza un sistema de distribución no estándar, que internamente descarga y compila las bibliotecas de dependencias. Este depósito inicia, para cada biblioteca, el script configure
que da como prefijo un directorio interno del sistema de compilación. Luego ejecuta make
y make install
, luego verifica el contenido buscando en el directorio de instalación el archivo lib/<mylib>.a
. Este último paso falla.Directorio de Lib en la distribución de OpenSuse de 64 bits
Tratando de entender lo que está sucediendo, compilé un par de bibliotecas aleatorias por mi cuenta, incluida una de la que soy el autor. Noté que bajo mi distribución (openSUSE, 64 bit) la ruta de instalación no está poblada con /lib
, sino con /lib64
.
Está claro que esta es una configuración de la distribución, y estoy bastante seguro de que esta configuración se refiere a una configuración de autotools incluida con la distribución.
¿Hay alguna forma de cambiar este comportamiento o, como alternativa, leer esta información del sistema (para que pueda aplicar el parche a la muestra antes mencionada)?
Gracias por su ayuda
actualización: que aprendieron sobre la bandera --libdir
en configure
, así que creo que puedo resolver mi problema. Sin embargo, me gustaría saber si hay alguna forma de conocer este detalle consultando de alguna manera la distribución (por ejemplo, lea algún archivo de configuración).
Esto no tiene nada que ver con autoconf en el sistema, ya que no está ejecutando autoconf. –
@WilliamPursell: No, pero estoy ejecutando el script 'configure'. Supongo que el sistema de compilación basado en 'configure' puede leer alguna configuración del sistema operativo (por ejemplo, algún archivo en'/etc/') para determinar dónde se espera que el sistema operativo encuentre las bibliotecas. – Dacav
Si el script de configuración está buscando en/etc /, es un error en el paquete. Nunca he visto el comportamiento que describes. Puede ser que esté generando scripts de configuración con una versión parcheada de autoconf. ¿El script de configuración contiene la línea "libdir = '$ {exec_prefix}/lib'"? –