autotools library dependencies

  • Ich versuch gerade ein Projekt das wir bisher mit eigenem Makefile kompiliert haben zur Arbeit mit den autotools zu überreden.

    Das Programm soll einmal als library ausgeliefert werden und einmal als executable (einfach noch ein main.o dazulinken im Prinzip)
    Die Library lässt sich problemlos kompilieren aber das binary noch nicht. Da erhalte ich eine undefined reference Fehlermeldung vom Linker.

    Dachte gleich mal an eine falsche Linkreihenfolge. Beim Vergleich meiner library Reihenfolge im Makefile.am mit dem Befehl den make dann ausführt fiel mir auf dass die Reihenfolge komplett anders ist.

    Falls mir hier jemand einen Tipp geben kann wär das super.

    Makefile.am

    make

    Fehlermeldung:

    Code
    /home/nao/opt/naoqi/extern/c/aldebaran/alcommon/lib/linux/libalcommon.a(almodule.o): In function `AL::ALModule::~ALModule()': 
    almodule.cpp:(.text+0x3824): undefined reference to `boost::signals::trackable::~trackable()'
    almodule.cpp:(.text+0x382c): undefined reference to `boost::signals::detail::signal_base::~signal_base()'
    almodule.cpp:(.text+0x383a): undefined reference to `boost::signals::trackable::~trackable()'
    almodule.cpp:(.text+0x3842): undefined reference to `boost::signals::detail::signal_base::~signal_base()'
    almodule.cpp:(.text+0x397f): undefined reference to `boost::signals::trackable::~trackable()'
    almodule.cpp:(.text+0x3987): undefined reference to `boost::signals::detail::signal_base::~signal_base()'
    almodule.cpp:(.text+0x3995): undefined reference to `boost::signals::trackable::~trackable()'
    ...

    I like Toast!

  • Du musst die Reihenfolge der Libraries ändern. Frühere können spätere nicht sehen, umgekehrt aber schon.

    EDIT: Achso, hab mich verschaut. Eigentlich sollte es eh so passen. Aber mit der Reihenfolge herumspielen ist trotzdem oft nützlich ;)

  • Da hab ich mich nicht gut ausgedrückt fürchte ich. Was ich damit ...

    Zitat

    Beim Vergleich meiner library Reihenfolge im Makefile.am mit dem Befehl den make dann ausführt fiel mir auf dass die Reihenfolge komplett anders ist.

    ... sagen wollte ist, dass die autotools die Reihenfolge in der ich die libs angebe verändert. Somit kann ich nicht rumspielen damit weil ich das System dahinter ned versteh.

    Zitat

    gibts gute Gründe, statisch gegen die Boost zu linken?

    Auf Nachfrage erfuhr ich, dass dies von einem Beispielprogramm des Herstellers übernommen wurde. Bei dem Projekt handelt es sich uebrigens um eins der Robocup Teams der TU Wien.
    Abgesehen davon kompiliert das Programm ja mit dem handgeschriebenen Makefile.

    I like Toast!

    2 Mal editiert, zuletzt von davewood (10. August 2009 um 14:26)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!