Pregunta

Tengo un proyecto construido con autotools, dividido en dos carpetas; la primera, lib , crea algunas bibliotecas, y el segundo, herramientas , enlaces en contra de ellos.
La compilación falla debido a libtool cambia el nombre de las bibliotecas de la siguiente manera, mientras que volver a vincular:

mylib.1.0.0 -> mylib.1.0.0U

Después de producirse el cambio de nombre, de todos modos, el nombre anterior no se restablece, ni es un nuevo mylib.1.0.0 creado, por lo que los enlaces simbólicos como mibiblioteca punto de quietud al nombre sin el extra T y falla la vinculación.
Hay alguna manera de evitar esto? o tal vez incluso para evitar el volver a vincular a todos? Estoy usando la versión 1.5.6 libtool.

¿Fue útil?

Solución

Al parecer, lo tengo ...
El problema es fácilmente reproducible con la siguiente estructura:

  • a lib carpeta, edificio:
    • Liba
    • libB , en función de Liba
  • a src carpeta, la construcción de prog , que une libB

A continuación, debe especificar esta en lib / Makefile.am:

lib_LTLIBRARIES = \
    libb.la \
    liba.la

En ese momento se producirá un archivo liba.so.1.0.0U. Especificando en su lugar (tenga en cuenta que se cambia el orden de las bibliotecas)

lib_LTLIBRARIES = \
    liba.la \
    libb.la

la acumulación funciona bien.
Estoy de acuerdo que la especificación de las cosas en el orden correcto es, en todo caso lo mejor que puede hacer; lo que todavía no está claro para mí es si esto es un error libtool o no ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top