0

boost.python を使用して、c++ から Python 拡張機能を構築しようとしています。

私の cpp ファイルは、標準パス (/usr/lib/) の下のライブラリ「libbz2」にある「BZ2_bzopen」という名前の関数を使用します。ただし、指示に従ってブーストビルドを使用して拡張機能をビルドしようとすると、次のエラーが表示されました。

====== BEGIN OUTPUT ======
Traceback (most recent call last):
  File "CrossTrade.py", line 11, in <module>
    from custom_c import GoThroughFile
ImportError: /home/jliu/toolpak/custom_c.so: undefined symbol: BZ2_bzopen

EXIT STATUS: 1
====== END OUTPUT ======

これは、ライブラリにリンクしていないためにエラーが発生したように思えます。これは、「-lbz2」コマンドを使用せずに cpp ファイルをコンパイルした場合とほとんど同じです。

誰でもそれを解決するための助けを提供できますか?

4

1 に答える 1

0

多分あなたはにリンクしていませんlibbz2か?その場合は、http: //www.boost.org/doc/libs/1_46_1/doc/html/bbv2/tutorial.html#bbv2.tutorial.prebuilt の手順に従って、ライブラリへのリンク方法を確認してください。

于 2012-11-07T15:28:37.230 に答える