Экспериментируя с Boost.Python, я наткнулся на такие ошибки:
$ LD_LIBRARY_PATH=. python
>>> import Tackle
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: ./Tackle.so: undefined symbol: _ZN6Tackle12TGameSessionD1Ev
Теперь, что это значит? Я знаю о ImportError
, это прямо вперед.
Tackle.so
объектный файл, который не удалось импортировать, undefined symbol
означает, что ожидаемый символ (конструктор, переменная, …) не определен, Tackle
это пространство имен и TGameSession
это класс.
Но что делать _ZN6
, 12
а также D1Ev
имею в виду?
Есть ли документация относительно этих сообщений об ошибках?
Немного подумав, я обнаружил, что в данном случае это конструктор копирования. Но откуда мне знать, кроме случайных догадок?
Задача ещё не решена.
Других решений пока нет …