c – 使用自定义makefile在Nao机器人上编译模块
发布时间:2020-12-16 06:51:57 所属栏目:百科 来源:网络整理
导读:我正在为Alderbaran Nao V5机器人编写一个模块. Alderbaran建议使用qibuild编译模块,我能够成功完成,但现在我正在尝试迁移到编写自己的makefile并使用g. 我遇到以下错误: /usr/lib/gcc/i686-pc-linux-gnu/4.5.3/../../../../lib/crt1.o: In function `_star
我正在为Alderbaran Nao V5机器人编写一个模块. Alderbaran建议使用qibuild编译模块,我能够成功完成,但现在我正在尝试迁移到编写自己的makefile并使用g.
我遇到以下错误: /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 `posix_spawnp@GLIBC_2.15' collect2: ld returned 1 exit status make: *** [shm.so] Error 1 这是我正在使用的makefile: #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构建模块时,为什么这个问题不会出现? 解决方法
有趣的是,问题是我的.so链接命令缺少-shared标志.然而,不知道为什么会给我遇到的所有错误.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |