2016-05-24 10 views
4

私はAlderbaran Nao V5ロボット用のモジュールをプログラミングしています。 Alderbaranは、qibuildを使ってモジュールをコンパイルすることを推奨しましたが、これを成功させることができましたが、今は自分のmakefileを作成しg ++を使うように移行しようとしています。Naoロボットのモジュールをカスタムメークファイルを使用してコンパイル

私は、次のようなエラーに遭遇しています:ここで

/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 

は、私が使用していますメイクファイルです:

#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 

私は私がコンパイルしていますgentooのオペレーティングシステムがGLIBCXX_3.4.14まで持っていることに気づきましたGLIBCXX_3.4.15はありません。この問題を解決するにはどうすればよいですか? qibuildを使用してモジュールを構築すると、なぜこの問題は発生しませんか?

答えて

0

興味深いことに、私の.soリンクコマンドに-sharedフラグがないという問題がありました。しかし、なぜそれが私が遭遇したすべてのエラーを出したのかは分かりません。

関連する問題