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
Code
lib_LTLIBRARIES = libakmotion.la
libakmotion_la_SOURCES = \
interface.cpp \
akactioncall.cpp \
akactioncall.hpp \
...
bin_PROGRAMS = akmotion
akmotion_SOURCES = main.cpp
akmotion_LDADD = \
-L${AL_DIR}/extern/c/linux/lib/ \
-L${AL_DIR}/extern/c/aldebaran/alcommon/lib/linux \
-L${AK_LIB} \
-lpython2.5 \
-ldl \
-lutil \
${AL_DIR}/extern/c/linux/lib/libboost_thread-gcc41-mt.a \
${AL_DIR}/extern/c/linux/lib/libboost_signals-mt.a \
${AL_DIR}/extern/c/linux/lib/libboost_filesystem-mt.a \
${AL_DIR}/extern/c/aldebaran/alcommon/lib/linux/libalcommon.a \
${AL_DIR}/extern/c/linux/lib/libtinyxml.a \
${AL_DIR}/extern/c/linux/lib/libhighgui.so \
${AL_DIR}/extern/c/linux/lib/libcxcore.so \
${AL_DIR}/extern/c/linux/lib/libcvaux.so \
Alles anzeigen
make
Code
g++
-g -O2
-o .libs/akmotion
main.o
/home/nao/opt/naoqi/extern/c/linux/lib/libhighgui.so
/home/nao/opt/naoqi/extern/c/linux/lib/libcxcore.so
/home/nao/opt/naoqi/extern/c/linux/lib/libcvaux.so
/home/nao/opt/naoqi/extern/c/linux/lib/libcv.so
-L/home/nao/opt/naoqi/extern/c/linux/lib/
-L/home/nao/opt/naoqi/extern/c/aldebaran/alcommon/lib/linux
-L/home/nao/projects/robocup/nao/trunk/lib
-lpython2.5 /home/nao/opt/naoqi/extern/c/linux/lib/libboost_thread-gcc41-mt.a
/home/nao/opt/naoqi/extern/c/linux/lib/libboost_signals-mt.a
/home/nao/opt/naoqi/extern/c/linux/lib/libboost_filesystem-mt.a
/home/nao/opt/naoqi/extern/c/aldebaran/alcommon/lib/linux/libalcommon.a
/home/nao/opt/naoqi/extern/c/linux/lib/libtinyxml.a
./.libs/libakmotion.so
/home/nao/projects/robocup/nao/trunk/lib/libaktools.a
-lutil
-lpthread
-lgcc
-ldl
-lc
Alles anzeigen
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()'
...