私は、libpython.a
(2.7)に静的リンクしているアプリケーションを持っています。アプリケーションのインタプリタの中から私が失敗しtime
モジュール(time.so
)、インポートしてみてください:だからアプリケーションに埋め込まれたPythonインタプリタでネイティブモジュールが読み込まれない
ImportError: ./time.so: undefined symbol: PyExc_IOError
を、このモジュールは、未解決のシンボルを持っています
nm -D time.so | grep PyExc_IOError
U PyExc_IOError
私は、このシンボルは、リンカによって破棄されていることを考え出しアプリケーションをリンクするとき。 [OK]を、私は今、すべてのシンボルとlibpython
をリンクしています:
$ nm app | grep PyExc_IOError
8638348 D PyExc_IOError
08638ca0 d _PyExc_IOError
しかし、私はまだ同じインポートエラーを取得:
... -Wl,-whole-archive -lpython -Wl,-no-whole-archive ...
シンボルが今あります。問題はどこだ?
埋め込みガイドの手順に従っていますか? distutilsでコンパイルしますか? –
@Eli、うん、そこにあるよ。私のガット様の注意のスパンは、最後の段落までそれを作るのに十分ではありませんでした。 –