2008-12-15 7 views
2

J'ai un projet construit avec autotools, divisé en deux dossiers; le premier, lib, crée des bibliothèques, et le second, les outils, les liens à leur encontre.
La construction échoue parce que libtool renomme les bibliothèques comme suit tout en re-lier:libtool ajout de 'U' supplémentaires aux noms de fichiers .so

mylib.1.0.0 -> mylib.1.0.0U 

Après le changement de nom se produit, de toute façon, le nom précédent est pas rétablie, ni une nouvelle mylib.1.0.0 créé, donc les liens symboliques comme mylib pointent toujours vers le nom sans le U supplémentaire et la liaison échoue.
Y a-t-il un moyen d'éviter cela? ou peut-être même pour éviter le relink du tout? J'utilise libtool version 1.5.6.

+0

Vous devriez probablement annuler la dernière édition et répondre à la question correctement à la place. –

Répondre

1

Apparemment, je l'ai eu ...
Le problème est facilement reproductible avec la structure suivante:

  • un dossier lib, bâtiment:
    • Liba
    • libb, en fonction de liba
  • un src dossier, la construction prog, qui relie libb

Ensuite, vous devez spécifier dans lib/Makefile.am:

lib_LTLIBRARIES = \ 
    libb.la \ 
    liba.la 

À ce moment-là un Liba Le fichier .so.1.0.0U sera produit. Spécification à la place (notez que l'ordre des bibliothèques est changé)

lib_LTLIBRARIES = \ 
    liba.la \ 
    libb.la 

la construction fonctionne bien.
Je suis d'accord que spécifier les choses dans le bon ordre est en tout cas la meilleure chose à faire; ce qui n'est toujours pas clair pour moi est si c'est un bug de libtool ou pas ...

Questions connexes