私は実行するプロジェクトを取得しようとしていますが、問題が発生しました。多くのデバッグの後、私は問題を絞り込んだが、どのように進めるか分からない。C++で未定義のシンボルがPython共有ライブラリをロードするとき
バックグラウンドによっては、私はC++コードの中でPythonスクリプトを使用しています。これはPython上ではいくらか文書化されていて、基本的な実行可能プログラムでそれをうまく動かすことができました。 #includeと-lpython2.6とすべてが壮大でした。
ただし、このPythonスクリプトを共有ライブラリ(.so)から実行すると、問題が発生しています。この共有ライブラリは、シミュレーションシステム(OpenRAVE)によって「モジュール」として「ロード」されます。システムは、SendCommandと呼ばれる「モジュール」の仮想メソッドを使用して、このモジュールとやりとりします。その後、モジュールはboost :: threadを起動し、Pythonに独自のスレッドを与え、シミュレーションシステムに戻ります。しかし、Pythonはそのモジュールをインポートするので、それが失敗したそのダイナミックライブラリのロードを開始するとき、私は次のようなエラーに起因すると仮定します。
ImportError: /usr/lib/python2.6/dist-packages/numpy/core/multiarray.so: undefined symbol: _Py_ZeroStruct
私は実行可能ファイルと共有ライブラリでのlddを実行した、いくつかはにありません違いがあります。上記のファイルでnm -Dも実行しましたが、_Py_ZeroStructは実際には定義されていません。あなたがコマンドのプリントアウトを望むなら、私はそれらを供給することがうれしいでしょう。アドバイスをいただければ幸いです。ありがとうございます。
はここで完全なPythonのエラーです:
Traceback (most recent call last): File "/usr/lib/python2.6/dist-packages/numpy/__init__.py", line 130, in import add_newdocs File "/usr/lib/python2.6/dist-packages/numpy/add_newdocs.py", line 9, in from lib import add_newdoc File "/usr/lib/python2.6/dist-packages/numpy/lib/__init__.py", line 4, in from type_check import * File "/usr/lib/python2.6/dist-packages/numpy/lib/type_check.py", line 8, in import numpy.core.numeric as _nx File "/usr/lib/python2.6/dist-packages/numpy/core/__init__.py", line 5, in import multiarray ImportError: /usr/lib/python2.6/dist-packages/numpy/core/multiarray.so: undefined symbol: _Py_ZeroStruct Traceback (most recent call last): File "/home/constantin/workspace/OpenRAVE/src/grasp_behavior_2.py", line 3, in from openravepy import * File "/home/constantin/workspace/rospackages/openrave/lib/python2.6/site-packages/openravepy/__init__.py", line 35, in openravepy_currentversion = loadlatest() File "/home/constantin/workspace/rospackages/openrave/lib/python2.6/site-packages/openravepy/__init__.py", line 16, in loadlatest return _loadversion('_openravepy_') File "/home/constantin/workspace/rospackages/openrave/lib/python2.6/site-packages/openravepy/__init__.py", line 19, in _loadversion mainpackage = __import__("openravepy", globals(), locals(), [targetname]) File "/home/constantin/workspace/rospackages/openrave/lib/python2.6/site-packages/openravepy/_openravepy_/__init__.py", line 29, in from openravepy_int import * ImportError: numpy.core.multiarray failed to import