符号查找错误(linux – c ++)

我正在使用多代理系统,如Robocup soccerrSim2d在Gnu-linux上。 我的distb是Ubuntu 11.10(内核3.2 – gcc 4.6)

我从源码安装librcsc 。 (它编译并安装成功)

然后我从src安装agent2d 。 (也编译安装成功!)

但是运行agent2d代码有问题:(当我运行src/start.sh时:)

发生此错误:

./src/sample_player:符号查找错误:/usr/local/lib/librcsc_agent.so.7:undefined symbol:_ZN4rcsc9UDPSocketC1EPKci

你怎么看待这个家伙? 其实,什么时候“符号查找错误”发生?

通过c++filt运行该符号表明它是rcsc::UDPSocket::UDPSocket(char const*, int)

因为这确实是rcsc一部分, rcsc您需要查看ldd /usr/local/lib/librcsc_agent.so.7librcsc.so.X (对于某些数字X )的条目可能有说“找不到”。 您必须找到适当的库(包括ldd说要搜索的数字后缀),并将包含它的目录添加到start.sh脚本中的LD_LIBRARY_PATH环境变量中。