Ошибка поиска символа (linux - c ++) - PullRequest
3 голосов
/ 06 февраля 2012

Я работаю в мультиагентной системе, как Robocup soccerrSim2d В Gnu-linux. Мой дистрибутив - Ubuntu 11.10 (ядро 3.2 - gcc 4.6)

Я установил librcsc из источника. (успешно скомпилировано и установлено)

тогда я установил agent2d из src. (он также успешно скомпилирован и установлен!)

Но есть проблема с запуском кода agent2d: (когда я запускаю src/start.sh:)

эта ошибка происходит:

. / Src / sample_player: ошибка поиска символа: /usr/local/lib/librcsc_agent.so.7: неопределенный символ: _ZN4rcsc9UDPSocketC1EPKci

Что вы думаете об этом, ребята? На самом деле, когда происходит «Ошибка поиска символа»?

1 Ответ

5 голосов
/ 06 февраля 2012

Пропуск этого символа через c++filt показывает, что это rcsc::UDPSocket::UDPSocket(char const*, int).

Поскольку это действительно часть rcsc, вам нужно взглянуть на ldd /usr/local/lib/librcsc_agent.so.7. Запись для librcsc.so.X (для некоторого числа X) там, вероятно, говорит "не найден". Вы должны найти соответствующую библиотеку (включая числовой суффикс, который, как сказал ldd, искали) и добавить каталог, содержащий его, в переменную окружения LD_LIBRARY_PATH в сценарии start.sh.

...