Я пытаюсь написать привязку Python для библиотеки C ++ от поставщика, который у нас есть. Я иду вперед, но это довольно болезненно (отчасти потому, что у нас нет источника для библиотеки).
Сейчас gcc (4.4.4) жалуется на какой-то исключительный класс, который он не может найти:
Load library for "FOO_Sessions" failed, the system error message is "/home/djc/foo/lib/libFOO_Sessions.so: undefined symbol: _ZTIN3foo4some22SomeExceptionE"
Однако я обнаружил _ZTIN3foo4some22SomeExceptionE в libFOO_Elsewhere (используя objdump -x), который можно найти в том же / home / djc / foo / lib / dir, и на него уже ссылается ключ -l при вызове компилятора.
LD_DEBUG = все сообщает следующее (спасибо Эрику за предложение):
/home/djc/foo/lib/libFOO_Sessions.so: error: symbol lookup error: undefined symbol: _ZTIN3foo4some22SomeExceptionE (fatal)
Однако objdump -p сообщает об этом для libFOO_Sessions.so:
Dynamic Section:
NEEDED libFOO_Connections.so
NEEDED libFOO_Session_Base.so
NEEDED libstdc++.so.6
NEEDED libm.so.6
NEEDED libgcc_s.so.1
NEEDED libc.so.6
SONAME libFOO_Sessions.so
Разве libFOO_Elsewhere (который содержит _ZTIN3foo4some22SomeExceptionE) не должен быть в записи NEEDED и для libFOO_Sessions?