Frage

Ich habe ein Projekt mit Autotool gebaut, aufgeteilt in zwei Ordner; die erste, lib , schafft einige Bibliotheken, und die zweite, Tools , Links gegen sie.
Der Build schlägt fehl, da libtool die Bibliotheken umbenennt wie folgt während Neuverknüpfung:

mylib.1.0.0 -> mylib.1.0.0U

Nach der Umbenennung erfolgt, wie auch immer, wird der bisherige Name nicht gestellt, noch ist ein neuer mylib.1.0.0 erstellt, so dass die symbolischen Links wie mylib noch zeigen auf den Namen ohne die zusätzlichen U und die Verknüpfung fehlschlägt.
Gibt es eine Möglichkeit, dies zu vermeiden? oder vielleicht sogar die Neuverknüpfung überhaupt zu vermeiden? Ich verwende libtool Version 1.5.6.

War es hilfreich?

Lösung

Anscheinend habe ich es ...
Das Problem ist leicht reproduzierbar mit folgenden Struktur:

  • a lib Ordner, Gebäude:
    • Liba
    • libb , abhängig von Liba
  • a src Ordner, Gebäude prog , die Links libb

Dann müssen Sie diese in lib / Makefile.am angeben:

lib_LTLIBRARIES = \
    libb.la \
    liba.la

An diesem Punkt eine liba.so.1.0.0U Datei erzeugt werden. Angeben statt (beachten Sie, dass die Reihenfolge der Bibliotheken geändert wird)

lib_LTLIBRARIES = \
    liba.la \
    libb.la

die Build funktioniert gut.
Ich bin damit einverstanden, dass die Dinge in der richtigen Reihenfolge Angabe in jedem Fall ist das Beste, was zu tun; was ist mir noch unklar ist, ob dies ein libtool Bug ist oder nicht ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top