2012-02-05 70 views
3

我正在使用多代理系統,如Robocup soccerrSim2d在Gnu-linux上。 我的distb是Ubuntu 11.10(內核3.2 - gcc 4.6)符號查找錯誤(linux-C++)

我從源碼安裝librcsc。 (它編譯和安裝成功)

然後我從src安裝agent2d。 (它編譯安裝成功了!)

但與運行agent2d代碼中的問題:(當我運行src/start.sh:)

發生此錯誤:

./src/sample_player: symbol lookup error: /usr/local/lib/librcsc_agent.so.7: undefined symbol: _ZN4rcsc9UDPSocketC1EPKci

你怎麼看關於它的傢伙?其實,「符號查找錯誤」何時發生?

回答

4

通過c++filt運行該符號表明它是rcsc::UDPSocket::UDPSocket(char const*, int)

因爲這的確是rcsc的一部分,所以您需要查看ldd /usr/local/lib/librcsc_agent.so.7librcsc.so.X(某些號碼爲X)的條目可能會顯示「未找到」。您必須找到相應的庫(包括ldd表示要搜索的數字後綴),並將包含它的目錄添加到start.sh腳本中的LD_LIBRARY_PATH環境變量中。