2016-05-24 6 views
4

Ich programmiere ein Modul für meinen Alderbaran Nao V5 Roboter. Alderbaran empfiehlt die Verwendung von qibuild, um ein Modul zu kompilieren, und ich konnte dies erfolgreich tun, aber jetzt versuche ich, auf mein eigenes Makefile zu migrieren und g ++ zu verwenden.Kompilieren des Moduls auf dem Nao Roboter unter Verwendung eines benutzerdefinierten Makefiles

Ich bin Begegnung mit den folgenden Fehler:

/usr/lib/gcc/i686-pc-linux-gnu/4.5.3/../../../../lib/crt1.o: In function 

`_start': 
(.text+0x18): undefined reference to `main' 
/home/nao/naoqi-sdk-2.1.3.3-linux32/lib/libqimessaging.so: undefined reference to `std::__detail::_List_node_base::swap(std::__detail::_List_node_base&, std::__detail::_List_node_base&)@GLIBCXX_3.4.15' 
/home/nao/naoqi-sdk-2.1.3.3-linux32/lib/libqi.so: undefined reference to `std::invalid_argument::~invalid_argument()@GLIBCXX_3.4.15' 
/home/nao/naoqi-sdk-2.1.3.3-linux32/lib/libqitype.so: undefined reference to `std::out_of_range::~out_of_range()@GLIBCXX_3.4.15' 
/home/nao/naoqi-sdk-2.1.3.3-linux32/lib/libqitype.so: undefined reference to `std::__detail::_List_node_base::_M_transfer(std::__detail::_List_node_base*, std::__detail::_List_node_base*)@GLIBCXX_3.4.15' 
/home/nao/naoqi-sdk-2.1.3.3-linux32/lib/libqimessaging.so: undefined reference to `std::__detail::_List_node_base::_M_unhook()@GLIBCXX_3.4.15' 
/home/nao/naoqi-sdk-2.1.3.3-linux32/lib/libqimessaging.so: undefined reference to `std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)@GLIBCXX_3.4.15' 
/home/nao/naoqi-sdk-2.1.3.3-linux32/lib/libqi.so: undefined reference to `[email protected]_2.15' 
collect2: ld returned 1 exit status 
make: *** [shm.so] Error 1 

Hier sind die Make-Datei ich verwende:

#Variables 
CXXFLAGS=-Wall -g 
CXX = g++ 
NaoQi_INC = /home/nao/naoqi-sdk-2.1.3.3-linux32/include 
NaoQi_LIB = -L/home/nao/naoqi-sdk-2.1.3.3-linux32/lib -lalcommon -lalerror -lalproxies -lalvalue -lqimessaging -lqitype -lqi 

#Object Targets 
main.o: main.cpp shm.h 
     $(CXX) $(CXXFLAGS) -c -I$(NaoQi_INC) main.cpp 

shm.o: shm.cpp shm.h $(NaoQi_INC)/alcommon/alproxy.h $(NaoQi_INC)/alcommon/albroker.h $(NaoQi_INC)/alcommon/almodule.h 
     $(CXX) $(CXXFLAGS) -c -I$(NaoQi_INC) shm.cpp 

#Library Targets 
shm.so: main.o shm.o 
     $(CXX) $(CXXFLAGS) -o shm.so main.o shm.o -L/usr/local/lib -lm $(NaoQi_LIB) 

clean: 
     rm -f *o main 
     rm -f *o shm 

all: shm.o main.o shm.so 

ich, dass das gentoo Betriebssystem bemerkte ich an der Zusammenstellung zu GLIBCXX_3.4.14 hat bis aber hat nicht GLIBCXX_3.4.15. Wie kann ich dieses Problem beheben? Warum würde dieses Problem nicht auftreten, wenn ich das Modul mit qibuild erstelle?

Antwort

0

Interessanterweise war das Problem, dass mein .so Verknüpfung Befehl fehlte ein Shared-Flag. Ich bin mir nicht sicher, warum das alle Fehler, denen ich begegnet bin, gegeben hat.

Verwandte Themen