ベンダーの C++ ライブラリ用の Python バインディングを作成しようとしています。進んでいますが、かなりつらいです (ライブラリのソースがないことも一因です)。
現在、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"
ただし、libFOO_Elsewhere (objdump -x を使用) で _ZTIN3foo4some22SomeExceptionE を見つけました。これは、同じ /home/djc/foo/lib/ ディレクトリにあり、コンパイラ呼び出しで -l スイッチを使用して既に参照されています。
LD_DEBUG=all は次のように報告します (提案してくれた Erik に感謝します):
/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 を含む) も、libFOO_Sessions の NEEDED エントリに含めるべきではありませんか?