isce2 icon indicating copy to clipboard operation
isce2 copied to clipboard

PyCuAmpcor;cuDenseOffsets.py; ImportError;undefined symbol;

Open guangbaoshen opened this issue 3 years ago • 0 comments

Hello, everyone, I used the ISCE2 v2.6.0's PyCuAmpcor module, I installed it standalone according to the README.md file in the package; When I try to use the cuDenseOffsets.py , an error occured as below:

theone@noone:~$ cuDenseOffsets.py -h This is the Open Source version of ISCE. Some of the workflows depend on a separate licensed package. To obtain the licensed package, please make a request for ISCE through the website: https://download.jpl.nasa.gov/ops/request/index.cfm. Alternatively, if you are a member, or can become a member of WinSAR you may be able to obtain access to a version of the licensed sofware at https://winsar.unavco.org/software/isce Traceback (most recent call last): File "/home/theone/PyCuAmpcor/examples/cuDenseOffsets.py", line 18, in from PyCuAmpcor import PyCuAmpcor ImportError: /usr/local/lib/python3.6/dist-packages/PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _Z15newCuNormalizeriii

then I check the .so file by this: ldd -r PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so and the result shows that there are many undefined symbols as below:

undefined symbol: PyExc_ValueError (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: _Py_TrueStruct (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyTuple_Type (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyList_Type (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: _Py_NoneStruct (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyByteArray_Type (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyFunction_Type (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyCFunction_Type (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyExc_OverflowError (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyExc_NameError (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyUnicode_Type (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyExc_NotImplementedError (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyExc_RuntimeError (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyBaseObject_Type (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyExc_StopIteration (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyExc_TypeError (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyMethod_Type (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: _Py_FalseStruct (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyLong_Type (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyExc_SystemError (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyExc_ImportError (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: _Py_CheckRecursionLimit (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: _PyByteArray_empty_string (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyObject_CallFinalizerFromDealloc (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyObject_Hash (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyObject_GetBuffer (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyLong_AsLong (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyMem_Realloc (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyObject_GetAttr (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyDict_GetItemString (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyImport_AddModule (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyObject_Call (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyUnicode_AsUnicode (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyTuple_Pack (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyErr_Restore (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyType_IsSubtype (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyModule_GetDict (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyTraceBack_Here (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyCode_New (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyDict_SetItem (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyErr_WarnEx (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyNumber_Index (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyUnicode_InternFromString (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyTuple_New (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyObject_SetAttr (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyDict_SetItemString (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyUnicode_FromFormat (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyBytes_FromStringAndSize (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyImport_GetModuleDict (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyDict_Next (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyErr_SetObject (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyNumber_Long (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyBuffer_Release (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyObject_GetIter (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyErr_Format (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyUnicode_DecodeUTF8 (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyType_Modified (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyMem_Malloc (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyCFunction_NewEx (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyList_New (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: _PyObject_GetDictPtr (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyUnicode_FromString (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: Py_GetVersion (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyErr_Clear (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyDict_DelItem (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyDict_GetItem (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyOS_snprintf (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyDict_New (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyErr_SetString (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyThreadState_Get (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyObject_SetItem (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyObject_SetAttrString (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyObject_Not (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyUnicode_Decode (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: _Py_CheckRecursiveCall (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyType_Ready (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyLong_AsSsize_t (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyLong_FromLong (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyObject_RichCompareBool (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyModule_Create2 (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyErr_Occurred (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyErr_Fetch (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: _Z15newCuNormalizeriii (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyImport_ImportModuleLevelObject (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: _PyType_Lookup (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyFrame_New (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyDict_Size (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyEval_EvalFrameEx (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyUnicode_Compare (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyImport_Import (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyUnicode_FromUnicode (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyErr_GivenExceptionMatches (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyEval_EvalCodeEx (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyUnicode_FromStringAndSize (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so) undefined symbol: PyBytes_AsStringAndSize (./PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so)

and I used the grep command to locate the error:

theone@noone:~/PyCuAmpcor/src$ grep -r 'PyEval_EvalCodeEx' Binary file build/lib.linux-x86_64-3.6/PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so matches Binary file build/temp.linux-x86_64-3.6/PyCuAmpcor.o matches PyCuAmpcor.cpp: result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, PyCuAmpcor.cpp: result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, Binary file PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so matches

theone@noone:~/PyCuAmpcor/src$ grep -r 'PyExc_ValueError' Binary file build/lib.linux-x86_64-3.6/PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so matches Binary file build/temp.linux-x86_64-3.6/PyCuAmpcor.o matches PyCuAmpcor.cpp: PyExc_ValueError, PyCuAmpcor.cpp: PyErr_Format(PyExc_ValueError,
PyCuAmpcor.cpp: PyErr_Format(PyExc_ValueError, PyCuAmpcor.cpp: PyErr_SetString(PyExc_ValueError, "Python does not define a standard format string size for long double ('g').."); PyCuAmpcor.cpp: PyErr_Format(PyExc_ValueError, PyCuAmpcor.cpp: PyErr_Format(PyExc_ValueError, PyCuAmpcor.cpp: PyErr_Format(PyExc_ValueError, PyCuAmpcor.cpp: PyErr_Format(PyExc_ValueError, "Expected %d dimensions, got %d", PyCuAmpcor.cpp: PyErr_Format(PyExc_ValueError, PyCuAmpcor.cpp: PyErr_SetString(PyExc_ValueError, PyCuAmpcor.cpp: return PyErr_Format(PyExc_ValueError, PyCuAmpcor.cpp: return PyErr_Format(PyExc_ValueError, PyCuAmpcor.cpp: return PyErr_Format(PyExc_ValueError, "Expected %d dimension(s), got %d", PyCuAmpcor.cpp: PyErr_SetString(PyExc_ValueError, PyCuAmpcor.cpp: PyErr_SetString(PyExc_ValueError, "Little-endian buffer not supported on big-endian compiler"); PyCuAmpcor.cpp: PyErr_SetString(PyExc_ValueError, "Big-endian buffer not supported on little-endian compiler"); PyCuAmpcor.cpp: PyErr_SetString(PyExc_ValueError, "Buffer acquisition: Expected '{' after 'T'"); PyCuAmpcor.cpp: PyErr_Format(PyExc_ValueError, PyCuAmpcor.cpp: PyErr_Format(PyExc_ValueError, PyCuAmpcor.cpp: PyErr_Format(PyExc_ValueError, PyCuAmpcor.cpp: PyErr_Format(PyExc_ValueError, PyCuAmpcor.cpp: PyErr_Format(PyExc_ValueError, Binary file PyCuAmpcor.cpython-36m-x86_64-linux-gnu.so matches

I have try to figure out what these mean, and someone says the linked files' order is wrong when compling the source code, but I know little about cmake and Makefile, is there someone met this error before? Thank you very much for your kind help.

guangbaoshen avatar May 10 '22 14:05 guangbaoshen