Próbowałem uruchomić mój projekt, ale mam problem. Po wielu debugowaniu zawęziłem problem, ale nie mam pojęcia, jak postępować.Niezdefiniowany symbol w C++ podczas ładowania współużytkowanej biblioteki Python
Niektóre tła, używam skrypt Pythona wewnątrz kodu C++. Jest to nieco udokumentowane w Pythonie i udało mi się sprawić, by działał bardzo dobrze w moim podstawowym pliku wykonywalnym. #include i -lpython2.6 i wszystko było wspaniałe.
Jednak trudności wystąpiły podczas uruchamiania tego skryptu Pythona z udostępnionej biblioteki (.so). Ta biblioteka współdzielona jest "ładowana" jako "moduł" przez system symulacyjny (OpenRAVE). System współdziała z tym modułem przy użyciu wirtualnej metody dla "modułów" o nazwie SendCommand. Następnie moduł rozpoczyna wątek boost ::, dając pythonowi własny wątek i wraca do systemu symulacji. Jednak, gdy zaczyna pyton importowania jego moduły, a tym samym jego dynamiczne ładowanie bibliotek nie powiedzie, zakładam z powodu następującego błędu:
ImportError: /usr/lib/python2.6/dist-packages/numpy/core/multiarray.so: undefined symbol: _Py_ZeroStruct
mam uruchomić ldd na moim pliku wykonywalnego i udostępnionej biblioteki, nie robi się niektóre być różnicą. Uruchomiłem również nm-D w powyższym pliku, _Py_ZeroStruct jest rzeczywiście niezdefiniowany. Jeśli chcielibyście wydrukować polecenia, chętnie je dostarczę. Każda rada byłaby bardzo doceniona, dziękuję.
Oto pełna błędów 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