Domanda

Ho un progetto costruito con autotools, divisa in due cartelle; il primo, lib , crea alcune librerie, e la seconda, Strumenti , i collegamenti contro di loro.
La costruzione non è riuscito perché libtool rinomina le librerie come segue mentre ricollegamento:

mylib.1.0.0 -> mylib.1.0.0U

Quando si verifica la ridenominazione, in ogni caso, il nome precedente non viene ripristinato, né è un nuovo mylib.1.0.0 creato, in modo che i link simbolici come mylib ancora puntare per il nome senza l'extra U e il collegamento non riesce.
C'è un modo per evitare questo? o forse anche per evitare il ricollegamento a tutti? Sto usando libtool versione 1.5.6.

È stato utile?

Soluzione

A quanto pare l'ho preso ...
Il problema è facilmente riproducibile con la seguente struttura:

  • lib cartella, edificio:
    • Liba
    • LIBB , a seconda del Liba
  • src cartella, la costruzione di prog , che collega LIBB

Quindi è necessario specificare questo in lib / Makefile.am:

lib_LTLIBRARIES = \
    libb.la \
    liba.la

A quel punto sarà prodotto un file liba.so.1.0.0U. Specificando invece (si noti che l'ordine delle librerie è cambiato)

lib_LTLIBRARIES = \
    liba.la \
    libb.la

la build funziona bene.
Sono d'accordo che specifica le cose nel giusto ordine è in ogni caso la cosa migliore da fare; ciò che è ancora chiaro per me è se questo è un bug libtool o no ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top